我无法理解为什么我可以访问Base class'字段。我没有Base类的对象,并且我不知道私有字段是否继承。当我试图获得领域时,我会#34;课程" SubDerived"用反射,它找不到它。请任何人解释..
using System;
namespace tests
{
public class Test
{
static void Main()
{
Base.SubDerived a = new Base.SubDerived();
a.f();
Console.ReadLine();
}
}
class Base
{
int i = 1;
public class SubDerived : Base
{
public void f()
{
Console.WriteLine(base.i);
}
}
}
}
答案 0 :(得分:4)
SubDerived
是嵌套的,这就是为什么它可以访问父类型的private
成员。如果您这样做:
class Base
{
int i = 1;
}
public class SubDerived : Base
{
public void f()
{
Console.WriteLine(base.i);
}
}
您无法访问i
。您需要将其设为protected
。