【问题标题】:private keyword vs no private keyword私人关键字与没有私人关键字
【发布时间】:2011-05-24 18:11:12
【问题描述】:

如果默认情况下所有内容都是私有的,那么 private 关键字有什么用?

public class A {
    object someObject;
    private object someOtherObject;
}

以上两个都不是私有的吗?如果它们都是私有的,那么为什么需要关键字本身?

【问题讨论】:

标签: c# .net


【解决方案1】:

无论默认值是什么,显式使用关键字都会澄清代码。

尽可能避免猜测或代码阅读器/维护者需要进行事实检查。

通过this prior question 提供可见性信息参考。

【讨论】:

    【解决方案2】:

    作为Steve Townsend said,它澄清了代码,但它在混合访问的属性中也很有用,例如:

    public int SomeProperty { get; private set; } 
    

    【讨论】:

      【解决方案3】:

      默认设置会不时更改。在 VB 中,默认情况下所有内容都是公开的。现在它是私人的。

      在其他编程语言中,默认是不同的。

      所以,写出来有助于代码的读者。

      【讨论】:

      • 在 C# 等已建立的语言中更改默认值将是一个巨大的突破性变化。我想这种情况发生的可能性很小。
      • @fingerprint211b:确实如此,但许多人会认为 VB6 和 VB.NET 是独立的方言,而不仅仅是版本号的增量。
      【解决方案4】:

      代码清洁度仅次于敬虔。使其易于阅读。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-03-30
        • 1970-01-01
        • 2013-01-29
        • 1970-01-01
        • 2012-08-13
        • 1970-01-01
        • 2020-09-25
        • 2013-11-08
        相关资源
        最近更新 更多