C#代码样式:从“this。”前缀切换为“下划线”[关闭]

问题描述 投票:3回答:2

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

在这里我的理由是从“这个”切换。 “强调”:

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

你有什么想法?

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

c# this naming-conventions stylecop
2个回答
6
投票

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

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

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

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

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


2
投票

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

A few more details

© www.soinside.com 2019 - 2024. All rights reserved.