//要宣告索引子,例如: public int this [int param] { get { return array[param]; } set { array[param] = value; } } //因為靜態成員函式存在於類別層級,且非物件的一部分,所以不具有 this 指標。在靜態方法中參考 this 是錯誤的。base 关键字用於存取衍生类别中的基底类别 (Base Class) 成员:呼叫一个已被其他方法覆 写之基底类别中的方法。指定建立衍生类别执行个体时,所要呼叫的基底类别建构函式。基底类别只允许在建构函式、执行个体方法 (Instance Method) 或执行个体属性存取子中存取 。在静态方法中使用 base 关键字是错误的。//於此例中,基底類別 Person 和衍生類別 Employee 都有一個名為 Getinfo 的方法。使用 //base 關鍵字,就可以從衍生類別中呼叫基底類別的 Getinfo 方法。 // Accessing base class members using System; public class Person { protected string ssn = "444-55-6666"; protected string name = "John L. Malgraine"; public virtual void GetInfo() { Console.WriteLine("Name: {0}", name); Console.WriteLine("SSN: {0}", ssn); } } class Employee : Person { public string id = "ABC567EFG"; public override void GetInfo() { // Calling the base class GetInfo method: base.GetInfo(); Console.WriteLine("Employee ID: {0}", id); } } class TestClass { static void Main() { Employee E = new Employee(); E.GetInfo(); } }
//此範例顯示了在建立衍生類別的執行個體時,要如何指定呼叫的基底類別建構函式。 using System; public class BaseClass { int num; public BaseClass() { Console.WriteLine("in BaseClass()"); } public BaseClass(int i) { num = i; Console.WriteLine("in BaseClass(int i)"); } public int GetNum() { return num; } } public class DerivedClass : BaseClass { // This constructor will call BaseClass.BaseClass() public DerivedClass() : base() { } // This constructor will call BaseClass.BaseClass(int i) public DerivedClass(int i) : base(i) { } static void Main() { DerivedClass md = new DerivedClass(); DerivedClass md1 = new DerivedClass(1); } }