我将自己编写一些 C# 代码,但我想确保遵循最广泛接受的命名约定,以防我想引入其他开发人员、发布我的代码或出售我的代码。现在我遵循微软设定的命名约定,因为它们似乎是最广泛接受的。他们没有提到的一件事是私有字段的命名。在大多数情况下,我看到它们以驼峰命名法命名,就像受保护的字段一样,但这给我带来了一个问题,因为参数名称应该以驼峰命名法命名。以下面的构造函数为例:
public GameItem(string baseName, string prefixName, string suffixName)
{
//initialize code
}
现在,如果我也对私有字段使用驼峰命名法,则会出现命名冲突,除非我使用“this”来访问类字段(我认为这违反了大多数标准,更不用说意味着更多的打字)。一种解决方案是为参数提供不同的名称,但为相同的数据提供 2 个不同的名称在逻辑上没有意义。据我所知,C++ 编码中常见的唯一其他解决方案是在开头给私有成员一个下划线 (_camelCase)。该解决方案是否被 C# 编码普遍接受?这个问题还有其他解决方案吗(比如仅使用属性(使用 PascalCase)来访问字段,即使在类本身中也是如此)?
_camelCase
从我所见, for 字段很常见(这是我们在我们的地方使用的,微软更喜欢 .NET 运行时 https://github.com/dotnet/runtime/blob/b186c975c02a5ce0b45d86fb99063db127979894/.editorconfig#L71).
我个人使用这个标准的理由是它更容易输入_
识别一个私有字段this.
例如:
void Foo(String a, String b)
{
_a = a;
_b = b;
}
Versus
void Foo(String a, String b)
{
this.a = a;
this.b = b;
}
我发现第一个更容易输入,它可以防止我意外分配给名为a
代替this.a
。
这一点得到了加强代码分析 http://msdn.microsoft.com/en-us/library/dd264939.aspx可维护性规则规定:
-
CA1500 http://msdn.microsoft.com/en-us/library/ms182216.aspx变量名称不应与字段名称匹配。
我的另一个原因是this.
如果它不与局部变量或参数名称冲突,则它是可选的(Visual Studio / Code 会提示您删除它们),从而更难了解您正在使用哪个变量。如果你有一个_
在所有私有字段的开头,那么您总是知道哪个是字段,哪个具有本地范围。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)