2011-07-21 86 views
8

我想知道在C#中命名变量的最佳方式是什么?我知道有几种不同的方式,但我只是想知道为什么有些人比另一种更喜欢一种?C#变量命名

我倾向于使用表示类型(我认为这是匈牙利方法?),但很多人小写字母不喜欢这样,这是最好的办法吗?

例子:

string sMyString 
string MyString 
string myString 
string mystring 

感谢

+0

微不足道的问题,绝对讨论... http://stackoverflow.com/questions/203618/how-to-name-variables –

回答

19

命名字段和局部变量的时候我已经用C#中最常见的约定是camel case

string myString 

Here是在C#中的大小写微软准则。他们声明(除其他外):

以下准则提供了标识符的一般规则。

不要使用Pascal大小写对所有公共成员,类型和命名空间的名称由多个单词。

注意,这条规则并不适用于实例字段。由于成员设计指南中详述的原因,您不应该使用公共实例字段。

不要使用骆驼外壳的参数名称。


我想补充一点,这是一件需要与你的团队成员的同意。

+2

奇怪的是,列表不包括局部变量。它们与参数和属性不同。我会假设他们打算用变量名来匹配参数名并使用camel case。 –

1

我会去string myString,这是正常的C#的方式。如果你看一下.NET/C#的MSDN文档中的示例,你很快就会体会到最佳实践。

局部变量是驼峰式的。匈牙利语言被认为是一种安全语言的不良习惯。类型系统负责了解您的类型。

+1

匈牙利符号是一般只会被那些不懂匈牙利语的人认为是不好的做法。它不是用来表示变量的系统类型。 – fearofawhackplanet

+1

@fearofawhackplanet:你说得对,如果它被使用,因为它最初的意思是好的。然而,匈牙利符号已经意味着表示这种类型。如果使用正确的方式,我同意它是好的,例如,请参阅http://www.joelonsoftware.com/articles/Wrong.html以获得关于此主题的好文章。 –

6

长,新兴的趋势是沿着

string meaningfulNameOfVariable; 

骆驼情况实际上是对你有意义的线条,和明确的名字,你的背景,以及其他开发商。

+2

+1,用于突出显示有意义的变量名称的重要性。 –

0

在实践中,这是协议的事项)命名您的部门内成为当大家都在部门通过自己的眼光写的问题)

使用ReSharper的或相同的命名,约定性质类似的工具)

3

我会参考MSDN guidelines。我的做法是,至少在我工作的地方,局部变量为string myDescriptiveStringName,类变量为private string _myDescriptiveStringName。对于物业,这将是public string MyDescriptiveStringName { get; set; }

但是,大多数组织遵循(或至少他们应该)某些约定。除非您希望在同行评审期间处于热门位置,否则最好不要偏离这些准则。 ;-)当然,有一些例外。

+1

我在项目中看到了下划线,但是如果坚持命名约定,不应该使用下划线,连字符或任何其他非字母数字字符。 [一般命名约定](http://msdn.microsoft.com/en-us/library/vstudio/ms229045(v = vs.100).aspx) – Coops

0

这取决于不同的事情......如果你对自己的编码,你可以使用你喜欢什么?通常情况下,我认为大多数C#开发者更喜欢骆驼...

如果您正在为公司等等,你必须坚持自己的编码标准...

我觉得最重要的是,变量名应该是非常可读,那就是更好的变量命名的终极目标......