私人成员应该在惯用的C#中明确声明为私人吗?

时间:2013-07-30 13:39:05

标签: c# coding-style idiomatic

由于C#和the best code is no code at all中的类成员默认是私有的,因此惯用C#是否会将私有成员声明为private以避免混乱?或者明确是更常见的吗?

要明确的是,我并不是问每个人对此事的看法是什么,而是在完善的代码库中更常见(我对C#来说相当新)。< / p>

3 个答案:

答案 0 :(得分:4)

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

答案 1 :(得分:4)

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

此外,其他一些语言可能有不同的默认实现,所以如果你的团队的新成员第一次拿起C#,显式减速将有助于他们。

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

  

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

     

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

答案 2 :(得分:1)

大多数C#样式指南似乎都支持显式过度隐式。例如,StyleCop几乎总是抱怨如果声明任何类型的对象(类,接口,字段,属性,方法等)没有访问修饰符。

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

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

但所有这些当然都是值得商榷的。