为什么我不能从 C# 中的子类访问受保护的方法?

Why can't I access a protected method from a subclass in C#?

为什么我不能从 C# 中的子类访问受保护的方法?

Class:

public abstract class A
{
    protected void Method()
    {

    }
}

子类:

public class B : A
{

}

控制台应用程序:

B b = new B();

b.Method();

编译器说: 错误 1 ​​'Method()' 由于其保护级别

而无法访问

protected 不是 意味着客户端代码可以通过派生的 class 实例访问它。

确实意味着派生的class代码可以使用它。例如,this 将是有效的:

public class B : A
{
     public void SomeMethod()
     {
          Method();
     }
}

如果您希望您的精确代码示例正常工作,请将Method标记为public