文章目錄
- 使用情況
- 語法
|
一般來說,一個類、結構或者接口位于一個源文件中,但是某些情況,比如大型項目、特殊部署時,可能需要把一個類、結構或者接口放在幾個文件中來處理。等編譯時,自動的把它們組合起來,成為一個完整的類,這就用到分部類了。
使用情況
- 類型特別大,不宜放在一個文件中實現
- 一個類型中的一部分代碼為自動化工具生成的代碼,不宜與自己編寫的代碼混在一起。
- 需要多人合作編寫一個類
語法
分部類是一個純語言層的編譯處理,不影響任何執行機制,事實上C#編譯器在編譯的時候仍然會將各個部分的局部類型合成一個完整的類。
C#分部類是在class前面添加關鍵字partial來定義
例如:
在一個文件中聲明分部類Point 的代碼如下:
public partial class Point //定義Point分部類部分代碼
{public double X;public double GetPointX(){return X;}}
在另一個文件中聲明分部類
public partial class Point //定義Point分部類部分代碼
{public double Y;public double GetPointY(){return Y;}}
Point類編譯后擁有GetPointX;GetPointY兩個方法。
分部類中還可以聲明聲明分部方法,分部方法是將方法的定義和實現分開。在方法前用partial 關鍵字修飾的方法就是分部方法。
如在一個文件中定義分部方法GetPointX方法。
public partial class Point //定義Point分部類部分代碼
{partial void GetPointX();
}
在另一個文件中實現分部方法
public partial class Point //定義Point分部類部分代碼
{partial void GetPointX(){}
}
分部方法隱式為partial 類型,不可使用public訪問修飾符。分部方法不可有返回值。因此一般分部方法用處不大,特別是分部方法只能是private類型。
|
|