StyleCop刚刚告诉我,我不应该在成员变量前面加上m_
. 那是 C# 编码风格的官方路线吗?我想它来自MS。有人对这个有了解吗??
默认情况下,StyleCop 不允许使用下划线、m_ 等来标记本地类字段,而支持“this”。字首。使用“this”的好处。是它同样适用于所有元素类型,包括方法、属性等,而不仅仅是字段,使得对类成员的所有调用都可以立即识别,无论使用哪个编辑器查看代码。另一个优点是它在实例成员和静态成员之间创建了一个快速、可识别的区别,它们不会加前缀。
StyleCop刚刚告诉我,我不应该在成员变量前面加上m_
. 那是 C# 编码风格的官方路线吗?我想它来自MS。有人对这个有了解吗??
默认情况下,StyleCop 不允许使用下划线、m_ 等来标记本地类字段,而支持“this”。字首。使用“this”的好处。是它同样适用于所有元素类型,包括方法、属性等,而不仅仅是字段,使得对类成员的所有调用都可以立即识别,无论使用哪个编辑器查看代码。另一个优点是它在实例成员和静态成员之间创建了一个快速、可识别的区别,它们不会加前缀。
虽然我确实喜欢_
为私有成员字段添加一些前缀。只是为了区分它们与相应的 getter/setter 的区别。
请记住,Style Cop 是一种用于强制执行特定(在本例中为 Microsoft 内部)编码风格的工具。它的建议不应与 FxCop 的建议或(优秀的)框架设计指南书中的任何其他建议同等重要。控制任何给定源代码的个人或组织应该是该代码样式指南的来源——没有全局“官方”编码样式,就像没有“官方”电子邮件签名或“官方”编码字体一样。
这完全取决于你的风格。您可以进入并修改该规则以适合您的编码风格,这样您就不会被它惹恼。个人觉得m_有点啰嗦,“我已经知道是会员了!” 我只会用下划线前。_成员。
如果您查看类型成员的名称部分,那么它会说:
字段命名准则适用于静态公共和受保护字段。指南未涵盖内部和私有字段
(我的重点)
我一直觉得 Stylecop 喜欢this
前缀很烦人。我可以立即认出我正在打电话给班级成员,因为我在说:
Load();
和写作:
this.Load();
并没有真正告诉我更多,它只是让我的台词更加冗长。当然,Load
可能是静态的,但我在乎什么?
我个人喜欢这种m_
方法。它使我可以轻松地在代码中搜索成员变量,所有成员变量在成员下拉列表中组合在一起,当我输入m_
Intellisense 时,会立即将列表缩小到我的所有成员变量。this
使用前缀时,您不会得到任何这些。
如果您针对核心 C# 库运行 Reflector,您会看到类似m_
和刚刚_
使用的前缀,因此显然微软在私有和内部成员的命名方面非常灵活。
当我看到带有this
成员变量和方法前缀的代码时,我倾向于降低我对该开发人员的看法,特别是如果关于它的对话以他们以“Stylecop 说我应该”为由证明它是正当的。