C#编程语言中变量的命名约定


10

我正在观看有关变量的C#视频。作者在方法内声明了一个变量,并按如下方式命名:string MyName =“ James”;

我的问题是:.Net Framework建议使用哪种约定。是上面示例中的Pascal机壳,还是骆驼皮?


这个问题的问题是您实际上不知道,因此这不是您的错,实际上是C#没有规范约定。有共同的约定;不幸的是,不止一个,但是要获得答案,除了纯粹的观点之外,很难。抱歉,投票结束;我的建议:花些时间在流行的github和codeplex存储库中阅读代码,以了解他们使用的约定是写大多数流行的习惯的人都是行业经验丰富的人,并且与您会发现的常见情况一样规范。
吉米霍法2013年


1
@Yusubov这些描述了库公共部分的命名,而不是局部变量。
2013年

Answers:


26

我认为没有像“官方”惯例这样的东西。据我所知,以下经验被许多经验丰富的C#开发人员视为良好做法:

PascalCase for public member variables (string MyName = "James")

camelCase for local variables (string myName = "James")

_leadingUnderscore for private member variables (string _myName = "James")

通过这种方法,可以通过首字母区分大小写以及公共和私人成员。

与任何编码约定一样,这也取决于个人喜好。因此,没有确定的答案。总的目标应该是使代码尽可能的可读性和可理解性。


3
+1这很接近我见过的风格。我相信它通常取自MSDN示例中使用的样式。通常我看到房地产越来越多PascalCase,当地人越来越多camelCase,私人成员越来越多_leadingUnderscore
KChaloux

说成员变量时,您是指字段还是属性?
卡瑟(Kaser)2013年

Delphi开发人员倾向于给函数/方法参数加上前缀“ a” :(aParameter: string)。我意识到参数本质上是局部变量,尤其是按值传递时,但是“看到” var实际上作为参数传递通常非常有帮助。C#中是否有这样的约定?
Marjan Venema

还有一个:成员字段。Delphians用“ F”作为前缀。我看过用下划线声明它们的C#代码private string _SomeString。您会说这是一个约定吗?(只需将脚尖浸入C#中,然后对这些东西感到奇怪)。
Marjan Venema

1
这是不准确的。已发布了针对公共成员(和公共班级等)的命名约定。
2013年

7

.Net框架命名约定(v4.5v1.1)与此无关。 他们没有指定命名局部变量的标准。 您必须决定自己的命名方式。

我个人使用camelCase,并this在必要时使用参数名称消除成员变量的歧义。但是前导下划线(即_memberVariable)也有效。


1
这正是使用命名约定的原因- this用于区分局部变量与字段/属性。每次额外增加5个字母,恕我直言。
Sinatr
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.