Disons que nous avons une méthode comme celle-ci (en C #):
int GetCustomerCount()
{
// some code
}
Maintenant, dans le code, nous l'appelons comme ceci:
var intStuff = GetCustomerCount();
// lots of code that culminates in adding a customer
intStuff++;
Le int ne nous dit pas beaucoup. Le simple fait que quelque chose soit un int ne nous dit pas ce qu'il y a dedans. Supposons maintenant que nous l'appelons comme ceci:
var customerCount = GetCustomerCount();
// lots of code that culminates in adding a customer
customerCount++;
Nous pouvons maintenant voir quel est le but de la variable. Cela aurait-il de l'importance si nous savons que c'est un int?
Le but initial du hongrois, cependant, était de vous faire faire quelque chose comme ceci:
var cCustomers = GetCustomerCount();
// lots of code that culminates in adding a customer
cCustomers++;
C'est bien aussi longtemps que vous savez ce que c représente. Mais vous devriez avoir une table standard de préfixes, tout le monde devrait les connaître, et toute nouvelle personne devrait les apprendre pour comprendre votre code. Alors que customerCount
ou countOfCustomers
est assez évident à première vue.
Le hongrois avait une certaine utilité dans VB avant d’ Option Strict On
exister, car VB6 et avant (et dans VB .NET avec Option Strict Off
) VB contraignaient les types afin que vous puissiez le faire:
Dim someText As String = "5"
customerCount = customerCount + someText
C'est mauvais, mais le compilateur ne vous le dirait pas. Donc, si vous utilisiez le hongrois, vous auriez au moins un indicateur de ce qui se passait:
Dim strSomeText As String = "5"
intCustomerCount = intCustomerCount + strSomeText // that doesn't look right!
Dans .NET, avec le typage statique, ce n'est pas nécessaire. Et le hongrois était trop souvent utilisé pour remplacer un bon nom. Oubliez le hongrois et choisissez de bons noms à la place.