由于类成员在 C# 中默认是私有的,并且最好的代码是完全没有代码,所以惯用的 C# 是否省略了声明私有成员private
以避免混乱?还是更常见的是明确的?
需要明确的是,我不是在问每个人对此事的看法,而是在完善的代码库中更常见(我对 C# 还很陌生)。
由于类成员在 C# 中默认是私有的,并且最好的代码是完全没有代码,所以惯用的 C# 是否省略了声明私有成员private
以避免混乱?还是更常见的是明确的?
需要明确的是,我不是在问每个人对此事的看法,而是在完善的代码库中更常见(我对 C# 还很陌生)。
为什么明确写“私人”的可能重复?. 我认为最好将它们明确声明为私有。您的代码变得更具可读性,尤其是对其他人而言...主要原因是私有不是每种语言的默认访问级别,正如上述问题中公认的答案所述。
就个人而言,我将它们声明为private
,以防其他人拿起代码并做出可能不正确的假设,或者决定更改范围级别(认为您忘记对成员进行评分)。
此外,其他一些语言可能有不同的默认实现,因此如果您团队的新成员第一次使用 C#,显式减速将帮助他们。
在 Safari Books 上的 C# 最佳实践中发现了这一点:
始终为所有类型和成员显式使用范围关键字。
原因:Visual Basic 类型成员的默认范围是公共的,而 C# 的默认范围是私有的。省略 scope 关键字可能会使更熟悉其他语言的开发人员迷失方向。
大多数 C# 样式指南似乎更倾向于显式而不是隐式。例如,如果在没有访问修饰符的情况下声明任何类型(类、接口、字段、属性、方法等)的对象, StyleCop几乎总是会报错。
我个人的偏好也是始终包含private
关键字,因为这样更容易一眼看出该成员是私人的。如果没有访问修饰符,我的大脑必须经历一个两步过程,首先需要确定没有访问修饰符,然后记住没有修饰符 = private
。
更复杂的是,例如在类上,没有访问修饰符 = internal
。我理解为什么字段/属性/方法和类/接口在这方面需要有所不同,但我不喜欢缺少访问修饰符会根据对象类型改变其含义的事实。
但这一切当然值得商榷。