可能重复:
为什么我不能访问受 C# 保护的成员,除非这样?
当我在阅读 ac# book 时(特殊的注释版本,它显示了 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
意思:
访问仅限于此类或从此类派生的类
问题
为什么存在此限制(通过实例)?
您能否提供一个有问题的情况的示例,就好像它被允许一样?