次のようなメソッドがあるとしましょう(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
一見するとかなり明白です。
Option Strict On
VB6以前では(およびVB .NETではOption Strict Off
)VBは型を強制するため、ハンガリー語にはVBが存在する前に何らかの目的がありました。
Dim someText As String = "5"
customerCount = customerCount + someText
これは悪いことですが、コンパイラはそうは言いません。したがって、ハンガリー語を使用している場合は、少なくとも何が起こっているかの指標があります。
Dim strSomeText As String = "5"
intCustomerCount = intCustomerCount + strSomeText // that doesn't look right!
.NETでは、静的型付けでは、これは必要ありません。また、ハンガリー語は、適切なネーミングの代わりに頻繁に使用されていました。ハンガリー語を忘れて、代わりに良い名前を選んでください。