C# 類中隱藏基類方法和Partial
阿新 • • 發佈:2018-12-14
C# 類中隱藏基類方法和Partial
原文 主題 C#今天對於.NET開發人員來說最開心的事情莫過於微軟搞開源了,這覺得是給搞.NET開發的長臉。雖然我是一個初學者,這無疑給我極大的學習動力。Fighting!!!
當一個類從父類繼承了一個成員時,也就繼承了它的執行程式碼,如果成員時虛擬的,我們可以用override重寫這段執行程式碼。但無論他是否是虛擬的,都可以通過new 關鍵字來隱藏它。例如:
public class BaseClass
{
public void DoSomething()
{
//執行程式碼
}
}
public class ChildClass:BaseClass
{
new public void DoSomething()
{
//隱藏基類的DoSomething方法
}
}
如果不使用new關鍵字的話,編譯器會警告,說隱藏了基類成員。這樣當我們不想繼承的方法像基類那樣執行我們就可以隱藏它。
有如下兩個類:
public class BaseClass
{
public virtual void DoSomething ()
{
Console.WriteLine("Base Function!");
}
}
public class ChildClass:BaseClass
{
new public void DoSomething()
{
Console.WriteLine("Child Function!");
}
}
我們用下面的程式碼呼叫它們
ChildClass child= new ChildClass(); BaseClass baseClass; baseClass = child; baseClass.DoSomething();
結果為
BaseFunction!
如果我們不使用new關鍵字,而是用override重寫基類的方法,那麼我們得到的結果應該是“Child Function!”。
Partial定義部分類和部分方法
我們可以通過Partial來定義一個類,通過這個關鍵字我們可以在一個檔案中定義欄位、屬性和建構函式,而在另外的一個檔案中定義其方法。
public partial class MyClass
{
//部分類定義
}
在windows窗體應用程式中就用到了部分類的定義,Windows窗體的程式碼分別在Form.cs和Form.Designer.cs中。
對於方法我們同樣可以在不同的部分類中定義,在一個部分類中宣告它,在另外一個部分類中實現,例如像下面的程式碼:
public partial class MyClass
{
partial void MyPartialMethod();
}
public partial class MyClass
{
partial void MyPartialMethod()
{
//方法的實現
}
}