C#代码样式:从“这个”切换。前缀为“下划线”

时间:2012-05-24 17:20:27

标签: c# this naming-conventions stylecop

我一直在使用“这个”。前缀约两年(StyleCop SA1102规则)。但是现在我正在改变主意并使用“下划线”前缀来表示静态和实例私有字段并删除“this”。前缀。

这是我从“这个”切换的原因。 “强调”:

  1. 轻松突破:团队中没有人会一直使用“这个”。前缀所以当你看到一个遵循这种风格的项目时你就不会看到“这个”。所有实例成员的前缀。
  2. 无用区分:区分实例和静态字段有什么好处?你有没有获得任何相关的东西?
  3. 噪音:如果你照顾使用“这个”。前缀,你会在每个地方看到“这个”。例如,我们在一个类中有77次“this”关键字,但在更改我们的样式后,我们只有9个下划线,我认为代码更具可读性(您可以轻松地遵循代码逻辑)。
  4. Razor :使用“这个”似乎很难看。 Razor C#代码中的前缀。例如,你将有“@ this.Html.Something”而不是“@ Html.Something”。我们喜欢在所有地方应用所有C#代码的一般规则。
  5. 你的想法是什么?

    忽略StyleCop SA1102规则(“this。”前缀)并使用“下划线”前缀来区分类字段是否合理?

2 个答案:

答案 0 :(得分:6)

你们所有人的分数也将适用于下划线(需要强制执行,而不是那么有用等等),如果你将77'这个'改为9 _ - 你就可以用9'这个'我也很确定。

知道这是一个实例还是静态字段/属性非常有用,imo,尤其是。在多线程环境中。

然而,当我看到'这个'时 - 我确切地知道它意味着什么;用下划线..我猜,但在这一点上,这实际上取决于你的一致性。

就个人而言,我经常(并非总是)使用'this'来区分局部变量和类属性,尤其是。如果方法很长。

在一天结束时,如果您和您的团队对下划线感到满意,这只是一个推荐 - 使用它。

答案 1 :(得分:2)

我不会说区分静态成员和实例成员是没用的。这取决于您在大多数时间使用的代码类型(多线程或仅与线程无关的代码)。 “这个。”给出了关于所用成员的直接语义,你个人不需要这个的事实在这里并不重要。由几个团队开发的大型企业应用程序从“this”等简单的可读性改进中获益匪浅。

A few more details