摘要:物件導向系列菜單7-『物件導向-部分類別(Partial Class)』
豹頭:包大人,咱們要如何打贏方唐鏡!?
包大人:一句話,分工合作!?
包大人:我出腦,你出力。
友為:那我呢??
包大人:去吃餅吧你~~~~
本文開始
本文討論主題
1.『部分類別使用與特性』
2.『部分方法使用與特性』
『部分類別使用與特性』
部分類別使用時機
在處理大型專案時,將類別分散至個別檔案,可讓多位程式設計師進行運作。
程式碼說明
建立部分類別的方法,就是加上關鍵子『partial』。
//部分類別(Employee其中一個組件)
public partial class Employee
{
public string PracticeTime;
public void DoWork()
{
}
}
//部分類別(Employee其中一個組件)
public partial class Employee
{
public string GoToDinner()
{
return "GoToDinner" ;
}
}
實體化類別,產生Employe物件
Employee Employ = new Employee { PracticeTime = "100" };
TextBox1.Text = Employ.GoToDinner();
TextBox6.Text = Employ.PracticeTime;
產生結果
注意
部分類別的特性
1.所有組件都必需在『相同』的『命名空間(Namespace)』
2.如果有任何組件宣告為『abstract』則被視為抽象,如果宣告為『Sealed』則被視為密封,如果其中一繼承某基底類別,整個型別都會繼承
3.任何組件都可以指定不同的基底介面,最後的型別會實作所有部份宣告的任何介面
『部分方法使用與特性』
部分方法的簽章是在部分型別中的一部分定義,而其實作是在型別的另一部分中定義。
//部份類別
public partial class Employee
{
public string PracticeTime;
//定義方法
partial void DoWork();
}
//部份類別
public partial class Employee
{
//部分方法,實作。
partial void DoWork()
{
Console .WriteLine("DoWork~~~" );
}
public string GoToDinner()
{
return "GoToDinner" ;
}
}
如果其中一個部分型別改成
partial void DoWork()
{
}
編譯器會打斷他的腿。
注意
部份方法的特性
1.部分型別兩個部分中的簽章必須相符
2.方法必預回傳void
3.沒有存取修飾詞是被允許的
4.如果沒有任何一個部分方法提供實作,則編譯器便會移除該方法和所有的呼叫。
5.部份方法都是隱含『private』,因此不能『virtual』