สมมติว่าเรามีวิธีการเช่นนี้ (ใน C #):
int GetCustomerCount()
{
// some code
}
ตอนนี้ในโค้ดเราเรียกมันว่า
var intStuff = GetCustomerCount();
// lots of code that culminates in adding a customer
intStuff++;
intไม่ได้บอกเราอย่างมาก ข้อเท็จจริงที่ว่าสิ่งที่เป็น int ไม่ได้บอกเราว่ามีอะไรอยู่ในนั้น ทีนี้สมมุติว่าเราเรียกมันอย่างนี้แทน:
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 ด้วยการพิมพ์แบบคงที่สิ่งนี้ไม่จำเป็น และชาวฮังกาเรียนก็ถูกนำมาใช้แทนการตั้งชื่อที่ดีเกินไป ลืมชาวฮังกาเรียนและเลือกชื่อที่ดีแทน