|
C# 参考之访问关键字:base、this |
| C# 参考之访问关键字:base、this
base 关键字用于从派生类中访问基类的成员:
调用基类上已被其他方法重写的方法。 指定创建派生类实例时应调用的基类构造函数。 基类访问只能在构造函数、实例方法或实例属性访问器中进行。
示例:
在派生类中调用基类方法。 // base 关键字// 访问基类成员using System;
public class BaseClass{ protected string _className = "BaseClass";
public virtual void PrintName() { Console.WriteLine("Class Name: {0}", _className); }}
class DerivedClass : BaseClass{ public string _className = "DerivedClass";
public override void PrintName() { Console.Write("The BaseClass Name is {0}"); //调用基类方法 base.PrintName(); Console.WriteLine("This DerivedClass is {0}", _className); }}
class TestApp{ public static void Main() { DerivedClass dc = new DerivedClass(); dc.PrintName(); }}
/**//*控制台输出:The BaseClass Name is BaseClassThis DerivedClass is DerivedClass*/在派生类中调用基类构造函数。 // keyWords_base2.csusing System;public class BaseClass{ int num;
public BaseClass() { Console.WriteLine("in BaseClass()"); }
public BaseClass(int i) { num = i; Console.WriteLine("in BaseClass(int {0})", num); }}
public class DerivedClass : BaseClass{ // 该构造器调用 BaseClass.BaseClass() public DerivedClass() : base() { }
// 该构造器调用 BaseClass.BaseClass(int i) public DerivedClass(int i) : base(i) { }
static void Main() { DerivedClass dc = new DerivedClass(); DerivedClass dc1 = new DerivedClass(1); }}
/**//*控制台输出:in BaseClass()in BaseClass(1)*/
注意点
从静态方法中使用 base 关键字是错误的。 base 主要用于面向对象开发的对态这方面,在示例2中有体现。 | |
|
|
|
|
|