假设我们有一个这样的方法(在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++;
现在我们可以看到变量的用途。如果我们知道它是整数,那会不会很重要?
但是,匈牙利语的最初目的是让您执行以下操作:
var cCustomers = GetCustomerCount();
// lots of code that culminates in adding a customer
cCustomers++;
只要您知道c代表什么,就可以了。但是您必须有一个标准的前缀表,每个人都必须了解它们,任何新手都必须学习它们才能理解您的代码。而customerCount
或者countOfCustomers
是乍一看很明显的。
匈牙利语在Option Strict On
存在之前在VB中具有某些用途,因为在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中,使用静态类型输入是不必要的。匈牙利人经常被用来代替良好的命名。忘记匈牙利语,取而代之的是好名声。