我们是否使用与私有变量相同的约定来命名表单上的控件?
由于某种原因,我从来没有见过这样做。有没有理由吗?例如,我喜欢_blah作为私有变量,并且至少在Windows Forms控件中默认情况下是私有成员变量,但是我不记得曾经见过这样命名的它们。如果我要在成员函数的局部变量中创建/存储控制对象,则在视觉上有所区别特别有用。
解决方案
回答
我没有,但我感谢逻辑。我想大多数人没有这样做的原因是,在设计时,下划线在"属性"窗口中看起来很难看。它还会占用额外的水平空间,在这样的停靠窗口中这是非常宝贵的。
回答
对于某些人来说,这可能是违反直觉的,但是对于UI元素,我们使用了可怕的匈牙利符号。
逻辑很简单:对于任何给定的数据对象,我们可能有两个或者多个与之关联的控件。例如,我们有一个在文本框中指示出生日期的控件,我们将具有:
- 文字框
- 一个标签,指示文本框用于生日
- 日历控件,可让我们选择日期
为此,我将使用lblBirthDate作为标签,将txtBirthDate用于文本框,并将calBirthDate用于日历控件。
但是,我有兴趣听听其他人如何做到这一点。 :)
回答
是否使用匈牙利表示法,我更好奇人们是否将m_或者_或者它们用作标准私有成员变量的前缀。
回答
Hungarian notation or not, I'm more curious if people prepend m_ or _ or whatever they use for standard private member variables.
卢克
我为类库对象使用_前缀。由于我所说的原因,我只在用户界面中使用匈牙利符号。
回答
我将m_用作成员变量,但是我越来越倾向于只使用lowerCamelCase,就像我对方法参数和局部变量一样。公开的内容在UpperCamelCase中。
在.NET社区中,这似乎或者多或者少是公认的惯例。
回答
我个人为私人对象加上_
表单控件始终以类型作为前缀,我这样做的唯一原因是由于智能感知。对于大型表单,只需键入lbl并从列表中选择它即可轻松获得"标签值" ^ _ ^。这也遵循Jon Limjap所说的逻辑。
尽管Microsoft .NET编码指南再次出现了此问题,但请在此处查看。
回答
对我而言,在命名规则前加下划线给私人成员的最大胜利与Intellisense有关。因为下划线在字母表中的任何字母之前,所以当我使用ctrl-space调出Intellisense时,我的所有_privateMembers都在顶部。
但是,就命名而言,控件是一个不同的故事。我认为这是假定范围,并且出于相同的原因,在前面几个字母表示类型(例如txtMyGroovyTextbox)更有意义。控件在Intellisense中按类型分组。
但是在工作中,一直都是VB,我们执行mPrivateMember。我认为m可能代表模块。
回答
我从不在变量名中使用下划线。我发现,除非语言要求,否则除了字母(有时是字母数字)字符以外的任何字符都是多余的。
回答
我处于大写/小写阵营(" title"是私人的," Title"是公共的),并且与UI组件(tbTextbox,lblLabel等)的"匈牙利"符号混合在一起,我很高兴我们没有团队中的Visual Case-Insensitive-Basic开发人员:-)
我不喜欢下划线,因为它看起来有点丑陋,但是我不得不承认它有一个优点(或者缺点,这取决于观点):在调试器中,由于_被占用,所有私有变量都位于最前面在字母表上。但是话又说回来,我更喜欢将私有/公共对组合在一起,因为这样可以更轻松地调试getter / setter逻辑,因为我们看到私有和公共属性彼此相邻,
回答
我通过VB进入并保留了控件的控件类型前缀。我的私人成员使用小写字母大写字母(firstLetterLowercase),而公共成员使用Pascal /大写字母大写字母(FirstLetterUppercase)。
如果标识符/成员/本地人太多,以至于没有90%的机会记住/猜测被称为什么的东西,那么可能就需要更多的抽象。
我从来没有说过存储类型前缀是有用和/或者必要的。但是,我确实习惯遵循我使用的任何代码的样式。
回答
我记下它们代表的数据库列的名称。