C#中的關鍵字之:base、this。base 關鍵字用於從衍生類別中訪問基類的成員:調用基類上已被其他方法重寫的方法。
指定建立衍生類別執行個體時應調用的基類建構函式。
基類訪問只能在建構函式、執行個體方法或執行個體屬性訪問器中進行。
樣本:
在衍生類別中調用基類方法。
以下是引用片段:<br /> // base 關鍵字<br /> // 訪問基類成員<br /> using System;<br /> public class BaseClass<br /> {<br /> protected string _className = "BaseClass";<br /> public virtual void PrintName()<br /> {<br /> Console.WriteLine("Class Name: {0}", _className);<br /> }<br /> }<br /> class DerivedClass : BaseClass<br /> {<br /> public string _className = "DerivedClass";<br /> public override void PrintName()<br /> {<br /> Console.Write("The BaseClass Name is {0}");<br /> //調用基類方法<br /> base.PrintName();<br /> Console.WriteLine("This DerivedClass is {0}", _className);<br /> }<br /> }<br /> class TestApp<br /> {<br /> public static void Main()<br /> {<br /> DerivedClass dc = new DerivedClass();<br /> dc.PrintName();<br /> }<br /> }<br /> /**//*
控制台輸出:
The BaseClass Name is BaseClass
This DerivedClass is DerivedClass
*/
在衍生類別中調用基類建構函式。
以下是引用片段:<br /> // keywords_base2.cs<br /> using System;<br /> public class BaseClass<br /> {<br /> int num;<br /> public BaseClass()<br /> {<br /> Console.WriteLine("in BaseClass()");<br /> }<br /> public BaseClass(int i)<br /> {<br /> num = i;<br /> Console.WriteLine("in BaseClass(int {0})", num);<br /> }<br /> }<br /> public class DerivedClass : BaseClass<br /> {<br /> // 該構造器調用 BaseClass.BaseClass()<br /> public DerivedClass() : base()<br /> {<br /> }<br /> // 該構造器調用 BaseClass.BaseClass(int i)<br /> public DerivedClass(int i) : base(i)<br /> {<br /> }<br /> static void Main()<br /> {<br /> DerivedClass dc = new DerivedClass();<br /> DerivedClass dc1 = new DerivedClass(1);<br /> }<br /> }<br /> /**//*
控制台輸出:
in BaseClass()
in BaseClass(1)
*/
注意點:
從靜態方法中使用 base 關鍵字是錯誤的。
base 主要用於物件導向開發的多態這方面,在樣本2中有體現。
this 關鍵字引用類的當前執行個體。
連結的部落格地址是:http://blog.163.com/huang_ying_lu/blog/static/269998320081109212363/