基类访问
如果派生类必须访问被隐藏的继承成员,可以使用基类访问(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();
}
}
如果你的程序代码经常使用这个特性(即访问隐藏的继承成员),你可能需要重新评估类的
设计。一般来说存在更优雅的设计,但是在没其他办法的时候也可以使用这个特性。