Скажімо, у нас є такий метод (у C #):
int GetCustomerCount()
{
// some code
}
Тепер у коді ми називаємо це так:
var intStuff = GetCustomerCount();
// lots of code that culminates in adding a customer
intStuff++;
ІНТ не говорить нам дуже багато. Сам факт, що щось є інтом, не говорить нам про те, що в ньому є. Тепер припустимо, натомість ми називаємо це так:
var customerCount = GetCustomerCount();
// lots of code that culminates in adding a customer
customerCount++;
Тепер ми можемо побачити, яка мета змінної. Було б важливо, якщо ми знаємо, що це int?
Первісна мета угорської мови, однак, була змусити вас зробити щось подібне:
var cCustomers = GetCustomerCount();
// lots of code that culminates in adding a customer
cCustomers++;
Це добре, якщо ви знаєте, що означає c . Але вам доведеться мати стандартну таблицю префіксів, і кожен повинен був би їх знати, і будь-яким новим людям доведеться їх вивчати, щоб зрозуміти ваш код. Тоді як це customerCount
або countOfCustomers
на перший погляд досить очевидно.
Угорський мав певні цілі в VB раніше, ніж Option Strict On
існував, тому що в VB6 і до (і в VB .NET з Option Strict Off
) VB примушував би типи, тож ви можете зробити це:
Dim someText As String = "5"
customerCount = customerCount + someText
Це погано, але компілятор не сказав би вам цього. Отже, якщо ви використовували угорську мову, ви хоч би мали якийсь показник того, що відбувається:
Dim strSomeText As String = "5"
intCustomerCount = intCustomerCount + strSomeText // that doesn't look right!
У .NET, при статичному введенні, це не потрібно. І угорська занадто часто використовувалася як заміна хорошого іменування. Забудьте про угорську мову та виберіть замість неї хороші імена.