基类访问
如果派生类必须访问被隐藏的继承成员,可以使用基类访问(base access)表达式。基类
访问表达式由关键字base后面跟着一个点和成员的名称组成,如下所示:
例如,在下面的代码中,派生类OtherClass隐藏了基类中的Field1,但可以使用基类访问
表达式访问它。
class SomeClass //基类
{public string Field1="Field1 -- In the base class";
}class OtherClass:SomeClass //派生类
{new public string Field1="Field1 -- In the derived class"; //隐藏了基类中的字段public void PrintField1(){Console.WriteLine(Field1); //访问派生类Console.WriteLine(base.Field1); //访问基类}
}class Program
{static void Main(){OtherClass oc=new OtherClass();oc.PrintField1();}
}
如果你的程序代码经常使用这个特性(即访问隐藏的继承成员),你可能需要重新评估类的
设计。一般来说存在更优雅的设计,但是在没其他办法的时候也可以使用这个特性。