private 关键字是一个成员访问修饰符。

private 访问是允许的最低访问级别。private 成员只有在声明它们的类和结构体中才是可访问的,如以下示例所示:

class LeiSY
    {
        private int _数量;
        double _单价; // 未指定访问修饰符默认是 private
    }

static void Main ( )
    {
        LeiSY sy = new ( );
        ……
    }

上例中 sy 对象以及在 Main 中使用 LeiSY 的静态方式均无法访问 LeiSY 的“_数量”和“_单价”成员。但在 LeiSY 内部是可以访问的。

同一体中的嵌套类型也可以访问那些私有成员。

在声明私有成员的类或结构外引用它会导致编译时错误。

示例

{
    static void Main(string[] args)
    {
        double Ben = 10000;
        LeiSY sy = new ( "羊肉", 160 , 32.5 );
        Console . WriteLine ( sy );
        Ben -= sy . _总价;
        Console . WriteLine ( $"还剩下:{Ben}" );
    }
}

class LeiSY
    {
    string _商品名;
    private readonly int _数量;
    readonly double _单价;

    public double _总价
        {
        get => _单价 * _数量;
        }

    public LeiSY ( string 商品名 , int 数量 , double 单价 )
        {
        _商品名 = 商品名;
        _数量 = 数量;
        _单价 = 单价;
        }

    public override string ToString ( )
        {
        return $"商品:{_商品名}(单价:{_单价};数量:{_数量});总价值:{_总价}";
        }
    }

上例中,在 LeiSY 内部,private 的变量均可被赋值和使用。只有构造函数和 _总价 字段以及 ToString 方法是公开的(public)。在 Main 方法中,你可以调用所有的 public 成员,无法调用 private 成员。当你带着 ¥10,000 去肉联厂进羊肉,上例就给你指示你花了多少,剩下多少。

如果把 _总价 设置为 private,则 Main 方法中无法使用该字段计算。


兔子码农
4 声望1 粉丝

一个酒晕子