【问题标题】:Should private members be declared explicitly as private in idiomatic C#? [closed]私有成员是否应该在惯用的 C# 中显式声明为私有? [关闭]
【发布时间】:2013-07-30 16:42:33
【问题描述】:

由于类成员在 C# 和 the best code is no code at all 中默认是私有的,所以惯用的 C# 是否省略了将私有成员声明为 private 以避免混乱?还是更常见的是直言不讳?

需要明确的是,我并不是在询问每个人对此事的看法,而是在完善的代码库中更常见(我对 C# 还很陌生)。

【问题讨论】:

  • 按照您的喜好。如果有人在意您明确声明了某些内容private,那么他们就是在挑剔并浪费您和他们的时间。恕我直言
  • 微软似乎在 .NET Framework 库中这样做了。

标签: c# coding-style idioms


【解决方案1】:

Why explicitly write "private"? 可能重复。我认为最好将它们明确声明为私有。您的代码变得更具可读性,尤其是对其他人而言...主要原因是私有不是每种语言的默认访问级别,正如上述问题中接受的答案所述。

【讨论】:

    【解决方案2】:

    大多数 C# 样式指南似乎更倾向于显式而不是隐式。例如,如果声明任何类型(类、接口、字段、属性、方法等)的对象而没有访问修饰符,StyleCop 几乎总是会报错。

    我个人的偏好也是始终包含private 关键字,因为这样更容易一眼看出该成员是私人的。如果没有访问修饰符,我的大脑必须经历一个两步过程,首先需要确定没有访问修饰符,然后记住没有修饰符 = private

    让事情变得更复杂的是,例如在类上,没有访问修饰符 = internal。我理解为什么字段/属性/方法和类/接口在这方面需要有所不同,但我不喜欢缺少访问修饰符会根据对象类型改变其含义的事实。

    但这一切当然值得商榷。

    【讨论】:

      【解决方案3】:

      就个人而言,我将它们声明为private,以防其他人拿起代码并做出可能不正确的假设,或者决定更改范围级别(认为您忘记对成员进行评分) .

      此外,其他一些语言可能有不同的默认实现,因此如果您团队的新成员第一次使用 C#,显式减速将帮助他们。

      在 Safari Books 上的 C# 最佳实践中找到了这个:

      始终为所有类型和成员显式使用范围关键字。

      为什么:Visual Basic 类型成员的默认范围是 Public, 而 C# 的默认范围是私有的。省略范围 关键字可能会迷惑那些更熟悉其他的开发者 语言。

      【讨论】:

      • 不要忘记 Java 的默认值与 internal 最相似(没有直接等效项)。但是private 始终是private
      猜你喜欢
      • 2011-04-04
      • 1970-01-01
      • 2011-02-24
      • 1970-01-01
      • 2021-08-05
      • 1970-01-01
      • 2011-02-26
      • 2018-03-06
      • 2014-08-25
      相关资源
      最近更新 更多