初始化变量的C#命名约定 - 有特殊情况吗?

时间:2013-05-29 14:05:19

标签: c# .net naming-conventions

我花了一些时间来概括一下我对C#中命名约定的了解,然后查看我的代码和一些至少有3到3年经验的同事的代码,我不确定他们是否习惯了不正确的约定或我在某些情况下没有得到通知。

从我看到的,当我们声明变量时,无论它是否被初始化,名称应该是Pascal情况(这里没有常量),但我在同事的代码中看到这个片段比我更有经验:

WebImage UploadImage = WebImage.GetImageFromRequest();

所以这里UploadImage以大写字母开头。当这种风格被接受时,或者只是我的大学没有遵循共同的命名惯例时,是否存在特殊情况(同样没有声明常量)?

P.S

由于很多回复,最终的约定由团队决定(我也同意是正确的)我想说我们是几个人但不是很多团队所以我想遵循一些一般惯例和我认为我的意思是msdn recommendations,但我发现它并不是那么清楚,所以这个PS是清除这个话题。我们通常不遵循任何团队惯例,但我不希望这阻止我采用一些广泛使用的惯例,我认为msdn推荐的是一个好的起点,因为这完全由我决定。

感谢所有回答!

4 个答案:

答案 0 :(得分:4)

对于大多数标识符,Microsoft有naming guidelines,但私有变量不包括在内。

最常见的惯例是将camel case用于局部变量:

WebImage uploadImage = WebImage.GetImageFromRequest();

对于命名变量的命名方式没有共同的约定,具体取决于它们是否在声明时被初始化。未初始化的变量最终会被初始化,从而使命名混乱。此外,通常不需要单独输出未初始化的变量,因为编译器不会让您读取一个肯定未被分配的变量。

答案 1 :(得分:1)

没有一套命名约定 - 你需要选择一个来采用。我从来没有看到任何初始化变量有什么不同,但通常本地声明的变量不会以大写字母开头 - 这些都留给了类级属性。

我使用的约定来自IDesign C# Coding Standards

答案 2 :(得分:0)

根据微软的说法,本地变量应该在camelCase中。

对于成员变量,有不同的样式(因为它没有正式指定)是我喜欢用_例如:_upperImage作为前缀的样式。这样您就可以轻松识别成员变量。

同样如上所述,答案的含义比惯例更重要。如果代码的所有其余代码都采用某种样式,则应遵循该样式(或全部更改)

答案 3 :(得分:0)

正如其他人所说,惯例的正确性只有团队决定的有效。有许多约定没有 正确

我建议您为团队选择最简单的约定。静态分析工具帮助我遵守惯例,我会从那里开始。让您的团队研究并尝试不同的工具并使用您找到的最佳工具。然后让工具做咕噜咕噜的工作。

我个人认为StyleCop很有用。根据{{​​3}},您的代码应如下所示:

WebImage uploadImage = WebImage.GetImageFromRequest();