由于C#和the best code is no code at all中的类成员默认是私有的,因此惯用C#是否会将私有成员声明为private
以避免混乱?或者明确是更常见的吗?
要明确的是,我并不是问每个人对此事的看法是什么,而是在完善的代码库中更常见(我对C#来说相当新)。< / p>
答案 0 :(得分:4)
Why explicitly write "private"?可能重复。我认为明确将它们声明为私有是最佳做法。您的代码变得更易读,特别是对于其他人...主要原因是私有不是每种语言的默认访问级别,正如上述问题中接受的答案所示。
答案 1 :(得分:4)
就我个人而言,我将它们声明为private
,以防其他人拿起代码并做出可能不正确的假设,或者决定更改范围级别(认为您忘记对其进行评分)构件)。
此外,其他一些语言可能有不同的默认实现,所以如果你的团队的新成员第一次拿起C#,显式减速将有助于他们。
在Safari Books的C#最佳实践中找到了这个:
始终为所有类型和成员明确使用范围关键字。
为什么:Visual Basic类型成员的默认范围是Public, 而C#的默认范围是私有的。省略范围 关键字可能会让那些对其他人更熟悉的开发人员迷惑 语言。
答案 2 :(得分:1)
大多数C#样式指南似乎都支持显式过度隐式。例如,StyleCop几乎总是抱怨如果声明任何类型的对象(类,接口,字段,属性,方法等)没有访问修饰符。
我个人的偏好也是始终包含private
关键字,因为它可以让您更容易一眼看出该成员是私密的。如果没有访问修饰符,我的大脑必须经历两步过程,首先需要确定没有访问修饰符,然后记住没有修饰符= private
。
更复杂的是,例如在类上,没有访问修饰符= internal
。我理解为什么字段/属性/方法和类/接口在这方面需要有所不同,但我不喜欢缺少访问修饰符根据对象类型改变其含义的事实。
但所有这些当然都是值得商榷的。