本地变量:Pascal命名法还是Camel命名法?

3
在VB.NET中,本地变量的命名规范是使用驼峰式还是帕斯卡式?比如说:
 Sub X()
      Dim myVariable As Integer
 End sub

或者

Sub X()
  Dim MyVariable As Integer
End Sub

根据这些示例,这个问题的标题是不正确的。看起来这个问题的目的是为了解决字段的命名,而不是局部变量的命名。(C#程序员也可能对这个问题感兴趣...这就是我来到这里的原因。) - DavidRR
关于 Dim 关键字,来自 Visual Basic 的访问级别 :“在模块级别上,没有任何访问级别关键字的 Dim 声明等同于一个 Private 声明。然而,你可能想使用 Private 关键字使你的代码更易读和解释。” - DavidRR
3个回答

5
指南(字段名称下)中可以看到以下命名规则:
引用如下:

字段的命名约定适用于静态公共和受保护的字段。不应定义公共或受保护的实例字段。有关详细信息,请参阅字段设计。

应使用帕斯卡命名法来命名字段。

应使用名词或名词短语来命名字段。

不要为字段名称使用前缀。例如,不要使用g_或s_来区分静态与非静态字段


指南没有提及私有字段,但所有示例似乎都使用驼峰命名法
指南也没有提及局部变量,但所有示例也似乎都使用驼峰命名法

Pascal中的“字段名称”?您是在说“MyVariable”是一个“字段名称”,因此应该使用Pascal大小写吗?我更喜欢这种方式,因为这样我可以区分本地字段(如MyVariable)和参数变量。我已经可以从模块级别变量中分辨出这两者,它们以“_”为前缀,这是一个有争议的约定,因为VB不区分大小写。有什么意见吗? - Chad
@Valika - 这是来自 Microsoft 的内容。请注意,Pascal 命名约定仅适用于静态公共和受保护的字段。 - Oded
1
但是这些准则根本不适用于局部变量?无论它们是公共的还是私有的,字段都不是局部变量。这些准则是针对类库中公开可见元素的。这些准则确实建议使用驼峰命名法来命名参数 - 这些参数仍然不是局部变量,但在准则中可以说是最接近局部变量的东西了。这些准则的书籍版本中有一些关于私有字段命名约定的讨论,但没有关于局部变量的内容。 - MarkJ
1
@MarkJ - 很正确。指南也没有关于局部变量的说明。回答已经修改。 - Oded
1
关于局部变量的命名问题:在Visual Basic编程约定中,示例中出现了以下局部变量名:longStringorderLogcloseItemhtmlDocseattleCustomers。因此,微软似乎暗示推荐使用驼峰命名法来命名局部变量。 - DavidRR

1
我注意到VB.NET用户倾向于使用帕斯卡命名法,而C#用户倾向于使用驼峰命名法。我认为驼峰命名法比帕斯卡命名法有许多优势。 它使您能够立即区分全局和局部变量,将_ 项保留为私有变量,并将帕斯卡式项目用于属性或全局变量。 您可以将其与变量中的附加信息相结合,例如ASPX页面的控件类型,即btnOK,这样您就可以基于控件类型和范围在智能感知中获得一个非常好的列表。

0

我将采用以下内容:

Sub X()
  Dim variable As Integer
End Sub

命名约定指出:

不要将“My”或“my”作为变量名称的一部分。这种做法会与My对象产生混淆。

我知道那不是你的问题,但我认为我应该指出来,因为我刚刚读到了它。

正如Oded所说,命名约定页面上的示例都使用camelCase。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接