c#初始化变量的命名约定——有特殊情况吗?
本文关键字:情况 变量 命名约定 初始化 | 更新日期: 2023-09-27 18:15:48
我花了一些时间来概述我对c#命名约定的了解,然后查看我的代码和一些至少有3-4年经验的同事的代码,我不确定他们是否只是习惯了不正确的约定,或者我没有被告知某些特定情况
从我所看到的,当我们声明变量时,无论它是否初始化,名称都应该是Pascal格式的(这里没有常量),但我在同事的代码中看到了这段代码,他的经验比我丰富得多:
WebImage UploadImage = WebImage.GetImageFromRequest();
这里UploadImage
以大写字母开头。当这种风格被接受时,是否存在特殊情况(同样没有声明常量),或者只是我的大学没有遵循通用的命名约定?
p。S
由于最后的惯例是由团队决定的许多反应(我也同意这是正确的),我想说我们是几个人,但不是一个团队,所以我想遵循一些一般的惯例,我认为我的意思是msdn recommendations
,但我看到它不是那么清楚,所以这个P.S.是为了澄清这个话题。我们通常不遵循任何团队惯例,但我不希望这阻止我采用一些广泛使用的惯例,我认为msdn推荐的是一个很好的起点,因为这完全取决于我的决定。
感谢所有的回答!
Microsoft对大多数标识符都有命名指南,但是私有变量不包括在这些指南中。
最常见的约定是对局部变量使用驼峰大小写:
WebImage uploadImage = WebImage.GetImageFromRequest();
根据变量是否在声明时被初始化而对其进行不同的命名,没有通用约定。未初始化的变量最终会被初始化,从而导致命名混乱。此外,通常不需要单独列出未初始化的变量,因为编译器不会让您读取尚未确定已赋值的变量。
没有一套命名约定——您需要选择一套来采用。我从来没有见过任何不同的初始化变量,但通常局部声明的变量不会以大写开始-这些是留给类级属性的。
我使用的约定来自IDesign c#编码标准
根据Microsoft的规定,局部变量应该使用camelCase。
对于成员变量有不同的样式(因为它没有正式指定),我更喜欢用_例如:_upperImage作为前缀。这样就可以很容易地识别成员变量。
也正如上面的答案所提到的,一致性比约定更重要。如果所有其余的代码都是某种样式,则应该遵循该样式(或全部更改)
正如其他人所说,约定的正确性只有在团队决定时才有效。有很多约定,没有一个正确的
。我建议您选择最容易让您的团队遵循的约定。静态分析工具帮助我遵守惯例,我将从这里开始。让你的团队研究并尝试不同的工具,并使用你找到的最好的工具。然后让工具来完成繁重的工作。
我个人发现StyleCop很有用。根据StyleCop,你的代码应该是这样的:
WebImage uploadImage = WebImage.GetImageFromRequest();