Diciamo che abbiamo un metodo come questo (in C #):
int GetCustomerCount()
{
// some code
}
Ora nel codice lo chiamiamo così:
var intStuff = GetCustomerCount();
// lots of code that culminates in adding a customer
intStuff++;
L' int non ci dice molto. Il semplice fatto che qualcosa sia un int non ci dice cosa ci sia dentro. Supponiamo ora che lo chiamiamo così:
var customerCount = GetCustomerCount();
// lots of code that culminates in adding a customer
customerCount++;
Ora possiamo vedere qual è lo scopo della variabile. Imporrebbe se sappiamo che è un int?
Lo scopo originale dell'ungherese, tuttavia, era di farti fare qualcosa del genere:
var cCustomers = GetCustomerCount();
// lots of code that culminates in adding a customer
cCustomers++;
Questo va bene finché sai cosa sta per c . Ma dovresti avere una tabella standard di prefissi e tutti dovrebbero conoscerli e ogni nuova gente dovrebbe impararli per capire il tuo codice. Considerando che customerCount
o countOfCustomers
è abbastanza ovvio a prima vista.
L'ungherese aveva uno scopo in VB prima che Option Strict On
esistesse, perché in VB6 e VB precedente (e in VB .NET con Option Strict Off
) VB avrebbe forzato i tipi, quindi potresti farlo:
Dim someText As String = "5"
customerCount = customerCount + someText
Questo è male, ma il compilatore non te lo direbbe. Quindi se avessi usato l'ungherese, almeno avresti qualche indicatore di ciò che stava accadendo:
Dim strSomeText As String = "5"
intCustomerCount = intCustomerCount + strSomeText // that doesn't look right!
In .NET, con la digitazione statica, questo non è necessario. E l'ungherese veniva usato troppo spesso come sostituto di una buona denominazione. Dimentica l'ungherese e scegli invece dei bei nomi.