微软在其网站上提供了命名指导方针(这里)。此外,我还有《框架设计指南》这本书。
但是我找不到有关命名控件的指导方针。
例如,当将一个按钮拖到表单中时,默认名称为类型名称+数字,驼峰式命名,如"button1"。
这是我所做的:删除数字,并添加有意义的描述。例如"buttonDelete"或"buttonSave"。
这样一来,您就不必在某个指南中维护一个大型控件列表及其缩写名称。
您同意吗?
微软在其网站上提供了命名指导方针(这里)。此外,我还有《框架设计指南》这本书。
但是我找不到有关命名控件的指导方针。
例如,当将一个按钮拖到表单中时,默认名称为类型名称+数字,驼峰式命名,如"button1"。
这是我所做的:删除数字,并添加有意义的描述。例如"buttonDelete"或"buttonSave"。
这样一来,您就不必在某个指南中维护一个大型控件列表及其缩写名称。
您同意吗?
这里列举了一些常见的:
frm Form
mnu Form menu
cmd Command button
chk Check button
opt Radio button
lbl Text label
txt Text edit box
pb Picture box
pic Picture
lst List box
cbo Combo box
tmr Timer
更详细的列表请参见INFO: VB中对象匈牙利命名约定。
注意:以下内容更适用于WinForm/WPF开发。Patrick Peters正确指出,处理ASP.NET控件时存在带宽/性能问题。
在这里没有真正的标准,我认为这是因为它是最任意命名方案之一。在大多数情况下,控件是私有的,在事件处理程序中轻微使用。
像其他回答者一样,我也曾经花费相当多的时间来“修复”控件名称。我会使用“btnSave”、“tbxName”(tbx代表TextBox)等方式。然而,当我向其他人解释我的方案时,我意识到这是多么任意。 "cbx"是ComboBox还是Checkbox?
这促使我重新审视设计师自动完成的工作,并意识到如果我让设计师完成这项工作,我可以清晰、一致且快速地命名控件。这与提问者的建议非常相似:
我用控件的语义替换控件编号。因此,“button1”(设计师默认值)将成为“buttonSave”,而“listBox3”将变成“listBoxWidgets”。如果只有一个该类型的控件,我只需要删除数字:“errorProvider1”变成“errorProvider”。
那么这种做法有什么好处呢?
PS:这有点像一道涂装车棚的问题,但由于我能画车棚,所以我参加了讨论。 ;)
虽然我没有一个具体的规则,但我尽量在名称的“类型”部分上做到非常宽泛。例如,Button(按钮),Link Button(链接按钮),Image Button(图像按钮)通常都被命名为“somethingButton”。组合框,单选按钮列表都以“somethingSelector”结尾。TextBoxes和Calendars叫做“somethingInput”。这样,我可以大致了解控件的类型,而不将名称与实际实现绑定在一起。如果我决定用下拉列表替换选项按钮组,则无需重新命名!
我已经有一段时间没有做WinForms了,但我做了两件事。
基本上大部分时间我根本不会为保存按钮创建一个成员。(如果您有一些保存逻辑,仍然可以只订阅OnSaving事件处理程序到按钮的Click事件)。
https://msdn.microsoft.com/en-us/library/ms233630(v=vs.110).aspx
是的,更改这些名称
对于我来说:
按钮 btnDescription
文本框 txtDescription
组合框 cboDescription
等等...
是的,对于任何变量(控制变量或非控制变量),您都需要有意义的标识符 - 默认名称只是因为您的IDE不知道您的问题域,因此无法始终“猜测”更好的名称。
我可能是最后几个仍在使用匈牙利标记的人之一。我知道IDE可以告诉您变量类型的参数,但是当我在Notepad ++中编码或查看打印输出时,这对我没有帮助...无论如何,我使用"btnSave","cbOptions","txtFirstName","lblTitle","ddlCardType"等。我喜欢能够瞥一眼代码并知道自己在看什么,而不必寻找声明或将鼠标悬停在变量上以获取其数据类型。
是的,我完全同意(但我将其重命名为ButtonDelete),所以在我的情况下小写名称用于变量 :)
个人认为,只要你保持一致,即使有人阅读你的代码,也不会遇到问题。