【发布时间】:2012-03-14 08:26:51
【问题描述】:
我正在使用一些公开某种类型(由方法返回)的第 3 方库。
这种类型有一些我感兴趣的受保护字段,但是我无法使用它们,因为它们的可见性是受保护的。
这里是问题的简化:
public class A
{
protected object Something;
public A Load()
{
return new A();
}
}
public class ExtendedA : A
{
public void DoSomething()
{
// Get an instance.
var a = Load();
// Access protected fields (doesn't compile).
a.Something = ....
}
}
有什么简单的方法可以实现吗?
【问题讨论】:
-
编译器的错误信息是什么?
-
我不明白,该字段是受保护的,但是当您从该类派生时,您仍然无法访问该成员?
-
在实例上调用
.Something**已知为ExtendedA与A之间存在很大差异;这就是受保护者不允许您访问的原因。 Eric Lippert 有一系列关于“为什么我不能从派生类访问受保护的成员?”的文章。 - 寻找他们?