所以將同個類別的不同實作分寫成很多檔案很容易
只要所有的檔案同時include同樣的標頭(.h)檔案就可以了
不過在C#裡面因為宣告和實作沒辦法分開做
(除非你想寫interface,不過概念又不太一樣)
但是把所有的class都寫在一起又很複雜而難以閱讀
所以在C#裡面要整理程式碼有兩個工具
第一個就是用#region,#endregion將一部分的程式碼夾住
可以把同類型的程式,如變數宣告、事件處理、公開函式
分別寫在不同的region裡面
public class c1
{
#region var declaration
int i;
#endregion
#region public function
public void f1()
{
...
}
public void f2()
{
...
}
#endregion
}
之後就可以用visual studio的功能
將一部分的程式碼直接隱藏
public class c1
{
var declaration
public function
}
這對於程式可讀性來說相當重要
之後就可以針對需要閱讀或編輯的區塊展開來編輯就好
不過即使這樣,實際的檔案還是沒有變小
如果不是使用visual studio來檢視的時候就會很痛苦
所以這時候就要用到另外一個工具 - partial class
在C#裡面可以將類別(class)宣告成部分
所以可以將不同的部分宣告在不同的partial class裡面
public partial class c2
{
public void f1()
{
...
}
}
public partial class c2
{
public void f2()
{
...
}
}
在編譯的時候這些同樣名字的類別會被合在一起編譯
所以可以把同一個類別的個別函式宣告在不同的cs檔案裡
要注意每個檔案中要用同樣的namespace
只有相同namespace下的同名的partial class會被合併一起處理
另外補充一點
在WPF裡面,如果有使用XAML來配置class的一些內容
比如window或是application之類的
那class也必須宣告成partial
因為XAML也會被轉換成另外一個partial class
裡面包含像是InitializeComponent之類預設的function
--
參考資料
Partial Class Definitions (C# Programming Guide)
.NET 2.0四大金剛Partial Class
沒有留言:
張貼留言