在看Keijiro最新的Unity ML的範例時,發現他用了一個特別的class語法partial,研究了一下,這個語法可以方便將一個超長的程式碼切割在不同的檔案中。
partial class A 就是說明這是類A 只是一部分。我可以在建立一個類B.cs。在程式碼裡也寫partial class A。那麼程式在編譯後。兩個 A中的屬性和方法會合並在一起統一叫做類A的成員。
partial關鍵字 C#2.0提供的新關鍵字,用來將一個class、struct或interface的定義拆分,寫在不同的原始檔中。每個原始檔包含類定義的一部分,編譯應用程式時將把所有部分組合起來。在以下幾種情況下需要拆分類定義:
- 處理大型專案時,使一個類分佈於多個獨立檔案中可以讓多位程式設計師同時對該類進行處理。
- 使用自動生成的源時,無需重新建立原始檔便可將程式碼新增到類中。Visual Studio 在建立 Windows 窗體、Web 服務包裝程式碼等時都使用此方法。
ex. 使用方法:
A_Setting.cs
namespace TestA {
public partial class A {
public void Setting(){
// setting action
}
}
}
A_Process.cs
namespace TestA {
public partial class A {
public void Process(){
// process action
}
}
}
這樣的就可以把語法分開,但要小心一點,partial適合把程式切割成不同區塊,但換言之,也就造成在維護與閱讀時比較零散