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++;
Il int non ci dice molto. Il semplice fatto che qualcosa sia un int non ci dice cosa c'è dentro. Ora supponiamo, invece, lo chiamiamo così:
var customerCount = GetCustomerCount();
// lots of code that culminates in adding a customer
customerCount++;
Ora possiamo vedere qual è lo scopo della variabile. Sarebbe importante se sappiamo che è un int?
Lo scopo originale dell'ungherese, tuttavia, era di fare qualcosa del genere:
var cCustomers = GetCustomerCount();
// lots of code that culminates in adding a customer
cCustomers++;
Questo va bene finché sai cosa significa c . Ma dovresti avere una tabella standard di prefissi, e tutti dovrebbero conoscerli, e ogni nuova persona dovrebbe impararli per capire il tuo codice. Mentre customerCount
o countOfCustomers
è abbastanza ovvio a prima vista.
L'ungherese aveva uno scopo in VB prima della coesistenza di Option Strict On
, perché in VB6 e precedenti (e in VB .NET con Option Strict Off
) VB costringeva i tipi, quindi puoi fare questo:
Dim someText As String = "5"
customerCount = customerCount + someText
Questo è male, ma il compilatore non ti direbbe così. Quindi se hai usato l'ungherese, almeno avresti qualche indicatore di quello che stava succedendo:
Dim strSomeText As String = "5"
intCustomerCount = intCustomerCount + strSomeText // that doesn't look right!
In. NET, con digitazione statica, questo non è necessario. E ungherese era troppo spesso usato come sostituto per una buona denominazione. Dimentica l'ungherese e scegli invece dei buoni nomi.