C#基础
示例
所述base关键字被从基类用于访问成员。它通常用于调用虚拟方法的基本实现,或指定应调用哪个基本构造函数。
选择一个构造函数
public class Child : SomeBaseClass {
public Child() : base("some string for the base class")
{
}
}
public class SomeBaseClass {
public SomeBaseClass()
{
//newChild()将不会调用此构造函数,因为它没有参数
}
public SomeBaseClass(string message)
{
//由于Child构造函数中指定了参数,因此newChild()将使用此基本构造函数
Console.WriteLine(message);
}
}虚方法的调用基础实现
public override void SomeVirtualMethod() {
//做某事,然后调用基础实现
base.SomeVirtualMethod();
}可以使用base关键字从任何方法调用基本实现。这将方法调用直接与基本实现联系在一起,这意味着,即使新的子类覆盖了虚拟方法,仍将调用基本实现,因此在使用时必须谨慎。
public class Parent
{
public virtual int VirtualMethod()
{
return 1;
}
}
public class Child : Parent
{
public override int VirtualMethod() {
return 11;
}
public int NormalMethod()
{
return base.VirtualMethod();
}
public void CallMethods()
{
Assert.AreEqual(11, VirtualMethod());
Assert.AreEqual(1, NormalMethod());
Assert.AreEqual(1, base.VirtualMethod());
}
}
public class GrandChild : Child
{
public override int VirtualMethod()
{
return 21;
}
public void CallAgain()
{
Assert.AreEqual(21, VirtualMethod());
Assert.AreEqual(11, base.VirtualMethod());
//请注意,下面对NormalMethod的调用仍返回该值
//即使该方法已被覆盖,也可以从极端基类中获取
//在儿童班。
Assert.AreEqual(1, NormalMethod());
}
}
热门推荐
10 八一幼儿祝福语大全简短
11 公司乔迁食堂祝福语简短
12 婚礼结束聚餐祝福语简短
13 儿媳买车妈妈祝福语简短
14 毕业送礼老师祝福语简短
15 同事辞职正常祝福语简短
16 恭贺新婚文案祝福语简短
17 金店立秋祝福语简短英文
18 婆婆高寿祝福语大全简短