【发布时间】:2014-11-01 18:23:34
【问题描述】:
我希望其他成员可以帮助我理解以下六个相互矛盾的准则:
a) 名称长度:
建议缩写...
对于长 [...] 术语,使用缩写来保持名称长度 合理。
建议不要缩写:
请勿在标识符名称中使用缩写或缩略词。
它是什么?签约还是不签约? PromotionalNumberTextBox 还是 PromNumTextBox?
b) 事件处理程序名称:
以描述事件类型的名词开头的事件处理程序名称 后跟“EventHandler”后缀,如“MouseEventHandler”。
Thia 与 Visual Studio 自动生成的内容不对应。请参阅下面的Button1_Click事件处理程序,它遵循控件、下划线和事件的格式。
编辑:其实并不矛盾。有关解释,请参阅 jmcilhinney 的评论。
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
'...
End Sub
c) 匈牙利符号:
不要使用匈牙利符号。
...但以下两个似乎都是匈牙利符号的变体。
对象应该使用一致的前缀来命名 很容易识别对象的类型。 [...] chkReadOnly [...] lblHelpMessage
使用 [...] 前缀表示变量的数据类型。 [...] 数量
d) 首字母大写:
对于长 [...] 术语,请使用缩写 [...] 例如,“HTML”, 而不是“超文本标记语言”。
[...] PascalCasing [...] 表示长度超过两个字母的 [...] 首字母缩略词 [...] 示例:[...] HtmlTag"。
这是模棱两可的。假设我有首字母缩写词 PIN。应该是PINTextBox还是PinTextBox?
e) 评论:
将 cmets 放在单独的一行而不是放在一行的末尾 代码。
注释可以跟在同一行的语句之后,也可以占据整个 行。
这是模棱两可的。是否推荐使用内联 cmets?
f) 星号行分隔符:
不要用格式化的星号块包围 cmets。
Source 但是,还提供了以下使用格式化块星号的示例:
'*****************************************************
' Purpose: Locates the first occurrence of a
' specified user in the UserList array.
' Inputs:
' strUserList(): the list of users to be searched.
' strTargetUser: the name of the user to search for.
' Returns: The index of the first occurrence of the
' rsTargetUser in the rasUserList array.
' If target user is not found, return -1.
'*****************************************************
【问题讨论】:
-
我确实控制了变量而不是变量,它们有一个 2/3 字母前缀,tbFirstname - 文本框,cbSave - 复选框,这样我可以通过输入 2 个字母来找到我的文本框,智能给了我所有文本框可供选择。变量是有意义的——它做什么或存储什么——没有前缀。你必须弄清楚你想要什么或你的雇主想要什么。
-
@OneFineDay 感谢您分享关于控件和变量的约定。在这个阶段,我试图将我想要的东西建立在微软想要的东西上(假设我最终可以在他们的建议中找到一致性)。
-
Visual Basic 已经存在了很长时间。这些命名约定来自上个世纪。试图使它们与现代惯例相协调当然会很困难。除非您在一个已经存在很长时间并且坚持传统惯例的团队中工作,否则几乎没有理由保持 Visual Basic 风格。试图说服这样一个团队的成员他们一直在做错事是行不通的。
-
@HansPassant 感谢您的上下文。没有一个严格的标准来遵守只是令人沮丧。总是,一种做法应该比另一种更好,无论差异多么名义上。更令人反感的是,微软提供了相互矛盾的指导方针。现在我很清楚,我需要自行决定是否实现它,就像其他人似乎都在做的那样。
-
您的 B 部分无关紧要。指定的约定是谈论代表事件的委托,而不是用于处理这些事件的方法。例如,
Control.MouseDown事件的类型为MouseEventHandler,正如文档所建议的那样,但您仍将使用名为MyControl_MouseDown的方法来处理特定控件的该事件。
标签: vb.net winforms naming-conventions naming convention