文章目录
- 使用情况
- 语法
|
一般来说,一个类、结构或者接口位于一个源文件中,但是某些情况,比如大型项目、特殊部署时,可能需要把一个类、结构或者接口放在几个文件中来处理。等编译时,自动的把它们组合起来,成为一个完整的类,这就用到分部类了。
使用情况
- 类型特别大,不宜放在一个文件中实现
- 一个类型中的一部分代码为自动化工具生成的代码,不宜与自己编写的代码混在一起。
- 需要多人合作编写一个类
语法
分部类是一个纯语言层的编译处理,不影响任何执行机制,事实上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类型。
|
|