C# 部分類定義
如果所創(chuàng)建的類包含一種類型或其他類型的許多成員時,就很容易引起混淆,代碼文件也比較長。這時可以給代碼分組。在代碼中定義區(qū)域,就可以折疊和展開各個代碼區(qū),使代碼更便于閱讀。例如,有一個類的定義如下:
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
}
上述代碼可以展開和折疊類的字段、屬性、構造函數(shù)和方法,以便集中精力考慮自己感興趣的內容。甚至可按這種方式嵌套各個區(qū)域,這樣一些區(qū)域就只有在包含它們的區(qū)域被展開后才能看到。
另一種方法是使用部分類定義(partial class definition)。簡言之,就是使用部分類定義,把類的定義放在多個 =文件中。例如,可將字段、屬性和構造函數(shù)放在一個文件中,而把方法放在另一個文件中。為此,在包含部分 =類定義的每個文件中對類使用partial關鍵字即可,如下所示:
public partial class MyClass { ...}
如果使用部分類定義,partial關鍵字就必須出現(xiàn)在包含部分類定義的每個文件的與此相同的位置。
例如,類MainWindow中的WPF窗口將代碼存儲在兩個文件MainWindow.xaml.cs和MainWindow.g.i.cs中(在Solution Explorer中選擇Show All Files并打開obj\Debug文件夾就可以看到它們)。這樣就可以重點考慮窗體的功能,不必擔心代碼會被自己不感興趣的信息攪亂。
對于部分類,最后要注意的一點是:應用于部分類的接口也會應用于整個類,也就是說,下面的兩個定義:
public partial class MyClass : IMylnterfacel { ... }
public partial class MyClass : IMyInterface2 { ... }
和
public class MyClass : IMylnterfacel, IMylnterface2 { ... }
是等價的。
部分類定義可以在一個部分類定義文件或者多個部分類定義文件中包含基類。但如果基類在多個定義文件中指定,它就必須是同一個基類,因為在c#中,類只能繼承一個基類。
點擊加載更多評論>>