鉴于这两个例子是等价的,您认为哪些是可取的?
没有显式修饰符
public class MyClass
{
string name = "james";
public string Name {
get { return name; }
set { name = value; }
}
void SomeMethod() { ... }
}
Run Code Online (Sandbox Code Playgroud)
使用显式修饰符
public class MyClass
{
private string name = "james";
public string Name {
get { return name; }
set { name = value; }
}
private void SomeMethod() { ... }
}
Run Code Online (Sandbox Code Playgroud)
我一直使用后者,但最近我开始采用前一种风格.私有是多余的,因为它是默认的访问者修饰符,所以排除它是否有意义?
Nic*_*uso 63
我认为明确说明私人有助于提高可读性.它不允许程序员以不同的方式解释其可见性.
Olm*_*lmo 44
看起来我们是唯一一个,但就个人而言,我支持让我们删除私人广告系列.
我担心的是公共和私有是如此相似,6-7个字符长,蓝色,以'p'开头,所以在10个显式私有方法之间指定一个公共方法要比没有访问属性的10个方法更难.
此外,这是一个优势,因为你团队中的懒人倾向于节省编写修饰符并使方法保密,这实际上是一件好事.否则你最终会公开一切.
我通常更喜欢明确的过度隐含,但这在语言角落案例(棘手的作弊)中更为重要.在这里,我认为长阶可维护性更重要.
此外,我通常喜欢代码在代码明确时以数学方式简单明了,以便保留未来编码器的无知.这是VB的方式,而不是C#...
Mar*_*ell 25
将它标记为私有表明它是故意的,而不是"我实际上没有想到它,所以我不知道它是否会像其他东西一样更好."; 所以我喜欢说明一点.不过,我不会对此有所了解.
此外 - 这可以防止必须记住规则...默认情况下成员是私有的,默认情况下(外部)类型是内部的; 嵌套类型默认是私有的...
说清楚......明确说明;-p
Rya*_*ndy 21
我总是省略它以减少视觉混乱.在C#中,一切都默认为可见度最低.类成员(字段,方法,属性)默认为private.类默认为internal.嵌套类默认为private.
如果您需要更明显的内容,请添加修改器.这样可以轻松查看偏离默认可见性的项目.
我能看到它导致问题的唯一情况是你来自VB .NET背景.但是,嘿,我来自VB .NET背景,我仍然知道C#中的默认可见性.
另一方面,在VB .NET中,我几乎总是包含它,因为默认值是相当愚蠢的; Sub或Function的默认值__CODE__而不是__CODE__.
Rob*_*ney 11
我已经在C#中全职开发了大约7年,直到我读到这个主题,我不知道默认访问修饰符是什么.我知道有一个存在,但我从未使用它.
我喜欢在编码时明确声明我的意图.两者都是因为当我回去看它的时候,我可以看到这些声明,并且当我写一个方法时,实际上在思考并输入"私人"这个词让我想到了我对它的想法.做.
就个人而言,我更喜欢私人修饰符 - 我喜欢显性.对于字段,它还强调它是一个成员变量而不是一个函数变量(唯一的区别就是位置 - 如果人们可以正确地缩进,这是可以的,但是否则会令人困惑).