2

由于类成员在 C# 中默认是私有的,并且最好的代码是完全没有代码,所以惯用的 C# 是否省略了声明私有成员private以避免混乱?还是更常见的是明确的?

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

4

3 回答 3

4

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

于 2013-07-30T13:46:35.733 回答
4

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

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

在 Safari Books 上的 C# 最佳实践中发现了这一点:

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

原因:Visual Basic 类型成员的默认范围是公共的,而 C# 的默认范围是私有的。省略 scope 关键字可能会使更熟悉其他语言的开发人员迷失方向。

于 2013-07-30T13:48:10.677 回答
1

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

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

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

但这一切当然值得商榷。

于 2013-07-30T13:46:49.250 回答