物件導向系列菜單7-『部分類別(Partial Class)』

摘要:物件導向系列菜單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』
 
 

 

 



小弟才書學淺~請各位客官指教指教~~~

小弟日 : 你要知道自已不是帥哥,你才有可能變成帥哥 。