位置:首頁 > 軟件操作教程 > 編程開發(fā) > C# > 問題詳情

C# 部分類定義

提問人:劉團(tuán)圓發(fā)布時(shí)間:2020-12-07

    如果所創(chuàng)建的類包含一種類型或其他類型的許多成員時(shí),就很容易引起混淆,代碼文件也比較長。這時(shí)可以給代碼分組。在代碼中定義區(qū)域,就可以折疊和展開各個(gè)代碼區(qū),使代碼更便于閱讀。例如,有一個(gè)類的定義如下:

public class MyClass

{

    #region Fields 

    private int mylnt;

    #endregion

    #region Constructor

    public MyClass() { mylnt = 99; }

    #endregion 

    #region Properties 

    public int Mylnt 

    {

        get { return mylnt; } 

        set { mylnt = value; }

    }

    #endregion 

    #region Methods 

    public void DoSomething() 

    {

        // Do something..

    }

    #endregion

}

    上述代碼可以展開和折疊類的字段、屬性、構(gòu)造函數(shù)和方法,以便集中精力考慮自己感興趣的內(nèi)容。甚至可按這種方式嵌套各個(gè)區(qū)域,這樣一些區(qū)域就只有在包含它們的區(qū)域被展開后才能看到。

    另一種方法是使用部分類定義(partial class definition)。簡言之,就是使用部分類定義,把類的定義放在多個(gè) =文件中。例如,可將字段、屬性和構(gòu)造函數(shù)放在一個(gè)文件中,而把方法放在另一個(gè)文件中。為此,在包含部分 =類定義的每個(gè)文件中對(duì)類使用partial關(guān)鍵字即可,如下所示:

    public partial class MyClass {  ...}

    如果使用部分類定義,partial關(guān)鍵字就必須出現(xiàn)在包含部分類定義的每個(gè)文件的與此相同的位置。

    例如,類MainWindow中的WPF窗口將代碼存儲(chǔ)在兩個(gè)文件MainWindow.xaml.cs和MainWindow.g.i.cs中(在Solution Explorer中選擇Show All Files并打開obj\Debug文件夾就可以看到它們)。這樣就可以重點(diǎn)考慮窗體的功能,不必?fù)?dān)心代碼會(huì)被自己不感興趣的信息攪亂。

    對(duì)于部分類,最后要注意的一點(diǎn)是:應(yīng)用于部分類的接口也會(huì)應(yīng)用于整個(gè)類,也就是說,下面的兩個(gè)定義:

public partial class MyClass : IMylnterfacel { ... } 

public partial class MyClass : IMyInterface2 { ... }

public class MyClass : IMylnterfacel, IMylnterface2 { ... }

    是等價(jià)的。

    部分類定義可以在一個(gè)部分類定義文件或者多個(gè)部分類定義文件中包含基類。但如果基類在多個(gè)定義文件中指定,它就必須是同一個(gè)基類,因?yàn)樵赾#中,類只能繼承一個(gè)基類。

繼續(xù)查找其他問題的答案?

相關(guān)視頻回答
回復(fù)(0)
返回頂部