C# 部分類定義
如果所創(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è)基類。
點(diǎn)擊加載更多評(píng)論>>