This question already has answers here:
Why shouldn't I prefix my fields? [closed]
(25个答案)
在10个月前关闭。
在使用C#之前,C++是我的主要编程语言。匈牙利的记号在我的内心深处。
我在C#中做了一些小项目,而没有阅读C#书籍或其他有关该语言的指南。在那些小的C#项目中,我使用了类似
直到我从SO读到一些东西说:
所以为什么?我是唯一在C#代码中具有m_strExePath或m_iNumber的人吗?
(25个答案)
在10个月前关闭。
在使用C#之前,C++是我的主要编程语言。匈牙利的记号在我的内心深处。
我在C#中做了一些小项目,而没有阅读C#书籍或其他有关该语言的指南。在那些小的C#项目中,我使用了类似
private string m_strExePath;
直到我从SO读到一些东西说:
所以为什么?我是唯一在C#代码中具有m_strExePath或m_iNumber的人吗?
最佳答案
Joel Spolsky在这个主题上有一个非常好的article。快速总结是,实践中使用了两种匈牙利表示法。
第一个是“Systems Hungarian”,您可以在其中使用前缀指定变量类型。类似“str”的字符串。这几乎是无用的信息,尤其是因为现代IDE仍会告诉您类型。
第二个是“Apps Hungarian”,您可以在其中使用前缀指定变量的用途。最常见的示例是使用“m_”表示成员变量。如果正确完成,这将非常有用。
我的建议是避免像瘟疫这样的“系统匈牙利语”,但在有意义的地方一定要使用“Apps Hungarian”。我建议阅读乔尔的文章。它有点长,但是比我能解释的要好得多。
本文最有趣的部分是匈牙利符号的原始发明者Charles Simonyi创建了“Apps Hungarian”,但他的论文被严重误解,因此创建了“Systems Hungarian”。
09-27 13:39