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

protected 成员在其所在的类中可由派生类实例访问。相对于 private,它的可访问范围稍有扩大,也就是不仅包括声明它的类,也包括从该类继承来的派生类。

示例 1

class Ji
    {
        protected int x = 123;
    }

class Ps : Ji
    {
        static void PaiSheng ( )
            {
                Ji ji = new ( );
                Ps ps = new ( );
                // ji . x = 10; // 警告:CS1540:无法通过“Ji”类型的限定符访问受保护的成员“Ji . x”;限定符必须是“Ps”类型(或者从该类派生)
                ps . x = 10; // OK,因为该类继承自 Ji
             }
    }

语句 ji . x = 10 生成错误,因为它是在静态方法 PaiSheng 中生成的,而不是类 Ps 的实例。

无法保护 struct 成员,因为无法继承 struct。

示例 2

{
    static void Main(string[] args)
        {
            Dian . FF画点 ( );
        }
}

class Point
    {
        protected int x;
        protected int y;
    }

class Dian : Point
    {
        public static void FF画点 ( )
            {
                Dian D = new ( );
                D . x = 10;
                D . y = 20;
                Console . WriteLine ( $"X = {D . x};Y = {D . y}" );
            }
        }

如果将 Point 的 x 改为 private,将产生编译器警告:
警告 CS0122:“Point . x”不可访问,因为它具有一定的保护级别


兔子码农
4 声望1 粉丝

一个酒晕子


« 上一篇
C# 的 private
下一篇 »
C# 的 public