Microsoft在其网站(here)上有命名准则。我也有“框架设计指南”一书。
我找不到的是关于命名控件的指南。
例如,一个按钮,当放到表单时,会得到typename + number,驼峰作为默认名称,例如“button1”。
这就是我所做的:我删除了数字并在之后添加了有意义的描述。例如“buttonDelete”或“buttonSave”。
通过这种方式,您无需在某个指南中维护大量控件及其缩写名称。
你同意吗?
答案 0 :(得分:25)
警告: 以下内容更多针对 WinForm / WPF 开发。 Patrick Peters正确地指出在处理ASP.NET控件时存在带宽/性能问题。
这里没有真正的标准,我相信这是因为它是任意命名方案中最强大的一个。在大多数情况下,控件对于类是私有的,并且仅在事件处理程序中轻易使用。
与其他回答者一样,我也曾花费大量时间“修复”控制名称。我会做“btnSave”,“tbxName”(文本框的tbx)等等。但是,在向其他人解释我的方案时,我意识到这是多么武断。 “cbx”是ComboBox还是Checkbox?
这让我重新审视设计师自动完成的工作,并意识到如果我让设计师完成工作,我可以清晰,一致,快速地命名控件。它实际上非常类似于问题海报的建议:
我用控件的语义替换控件号。因此“button1”(设计器默认值)将为“buttonSave”,“listBox3”将成为“listBoxWidgets”。如果只有一个该类型的控件,我只删除数字:“errorProvider1”变为“errorProvider”。
那怎么更好?
PS。这是一个倾向于Bikeshed的问题,但是因为我可以画一个bikeshed,我继续参加讨论。 ;)
答案 1 :(得分:24)
以下是一些常见的内容:
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: Object Hungarian Notation Naming Conventions for VB 。
答案 2 :(得分:19)
我没有这样的约定,但我确实尝试使用名称的“类型”部分。例如按钮,链接按钮,图像按钮往往被命名为'somethingButton'。组合框,单选按钮列表最终都是'somethingSelector'。 TextBoxes和Calendars是'somethingInput'。这样我就可以大致了解它的控制方式,而不会将名称与实际实现联系起来。如果我决定用下拉列表替换选项按钮组,则无需重命名!
答案 3 :(得分:4)
我没有做WinForms很长一段时间,但我做的是两件事。
基本上大部分时间我都不会为保存按钮创建成员。 (如果你有一些保存逻辑,你仍然可以只有OnSaving事件处理程序订阅按钮的Click事件。)
https://msdn.microsoft.com/en-us/library/ms233630(v=vs.110).aspx
答案 4 :(得分:3)
是更改这些名称
对我来说:
Button btnDescription
TextBox txtDescription
ComboBox cboDescription
等...
答案 5 :(得分:2)
当涉及各种约定时,GUI编程得到了简短的介绍。有关我用于命名的指南,请参阅我的answer to another question。
答案 6 :(得分:1)
是的,您需要任何变量的有意义的标识符 - 控制与否 - 默认名称仅仅是因为您的IDE对您的问题域一无所知,因此无法始终“猜测”更好的名称。
答案 7 :(得分:1)
我可能是最后几个仍然使用匈牙利表示法的人之一。我知道IDE可以告诉你变量类型的论点,但是当我在Notepad ++中编码或查看打印输出时,这对我没有帮助....无论如何,我使用“btnSave”,“cbOptions”, “txtFirstName”,“lblTitle”,“ddlCardType”等......我只是想看一眼代码并知道我在看什么而不寻找声明或将鼠标悬停在一个变量上以获取它的数据类型IDE。
答案 8 :(得分:0)
是的,我完全同意(但我将其重命名为ButtonDelete),因此小写名称适用于我的情况:)
就个人而言,我认为只要你保持一致,即使其他人正在阅读你的代码,你也不会遇到问题。
答案 9 :(得分:0)
我不确定,但我认为Windows Forms中的控件命名是我可以看到Hungarian notation使用的唯一地方之一。所以我觉得你很好。
答案 10 :(得分:0)
我相信当前的想法会在名称中包含控件类型。我倾向于将它们视为我正在使用的另一个对象,并遵循相同的命名约定。
当然使用有意义的命名,不言而喻:)但是,在一天结束时,如果你的命名约定在你几个月后重新访问代码时仍然有意义,那么我可能会坚持使用它。
答案 11 :(得分:-1)
简而言之,我们在控件前加上控件的缩写。即
Buttons = btnDelete,btnSubmit,btnReturn
Textboxes = txtUsername,txtPassword等
这样,通过输入缩写,您可以在键入缩写时获得所有类似的控件,即键入btn,intellisense将列出您到目前为止添加的所有按钮。