可能是重复问题:
为什么我不能像这样访问C#受保护的成员?
当我阅读一本c#书籍时(这本书有特殊注释版,显示了c#的所有棘手部分),我看到了这段代码:
public class A
{
protected int x;
static void F(A a, B b)
{
a.x = 1; // Okay
b.x = 1; // Okay
}
}
public class B: A
{
static void F(A a, B b)
{
a.x = 1; // Error: must access through instance of B
b.x = 1; // Okay
}
}
protected
的意思:
仅限于此类或从此类派生的类的访问权限
问题
为什么要存在这个(通过实例)的限制?
您能否提供一个禁止后会导致问题的情况的例子?