C# 代码样式:从“this.”前缀切换到“下划线”

本文关键字:下划线 前缀 this 代码 样式 | 更新日期: 2023-09-27 18:35:26

我已经使用"this."前缀大约两年了(StyleCop SA1102规则)。但是现在我改变了主意,对静态和实例私有字段使用"下划线"前缀,并删除了"this."前缀。

以下是我从"这个"切换到"下划线"的原因:

  1. 轻松中断:团队中没有人会始终使用"this."前缀,因此当您看到遵循此样式的项目时,您将不会看到所有实例成员的"this."前缀。
  2. 无用的区分:区分实例字段和静态字段有什么好处?你有什么收获吗?
  3. 噪音:如果你注意使用"this."前缀,你会在任何地方看到"this"。例如,我们在一个类中有 77 次"this"关键字,但在改变我们的风格后,我们只有 9 个下划线,我认为代码更具可读性(您可以轻松遵循代码逻辑)。
  4. Razor:在 Razor C# 代码中使用"this."前缀似乎很丑陋。例如,您将有"@this。Html.Something"而不是"@Html.Something"。我们希望将一般规则应用于所有任何地方的所有 C# 代码。

你的想法是什么?

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

C# 代码样式:从“this.”前缀切换到“下划线”

你们所有的分数也适用于下划线(它需要强制执行,不是那么有用,等等),如果你把 77 个"this"改成 9 _ - 我敢肯定,你也可以用 9 个"这个"。

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

然而,当我看到"这个"时 - 我确切地知道它是什么意思;带下划线。我可以猜到,但在这一点上,这真的取决于你的一致性。

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

归根结底,这只是一个建议,如果您和您的团队对下划线感到满意 - 使用它。

我不会说区分静态成员和实例成员是没有用的。这取决于您大部分时间都在处理哪种代码(多线程或仅与线程无关的代码)。"this."给出了有关所用成员的即时语义,您个人不需要这一事实在这里并不重要。由多个团队开发的大型企业应用程序从像"这个"这样的简单可读性改进中受益匪浅。

更多细节