一.定义
分部方法是指能够使编码人员跨多个代码文件实现类型的语法。简而言之。它可以让我们在一个文件中构建方法原型,而在另一个文件中实现
使用分部方法和分部类需要使用关键词partial,且紧靠在class、struct、interface或void之前。
每一个分部类型必须有完全相同的限定名。
二.注意事项
1.分部方法只可以定义在分部类中
2.分部方法返回值必须为void
3.分部方法可以是静态的或实例级别的
4.分部方法可以有参数(包含被this、ref或params修饰的参数,但不能有out修饰符)
三.分部类
1.分部类就是将接口、结构、类或者方法的拆分到两个或多个文件中。而编译时会将所有分部编译在一起
2.要求和分部方法类似:关键字partical,分部类之间可访问性,抽象、静态、都必须是相同的。
3.各个分部类之间可以相互调用其参数,方法等
4.各个分部类继承的接口和基类都是共同继承的
四.举例
为了看到分部方法的定义,新建个类CarProperty,定义个方法Move,在方法内部有个分部方法Accelearte
static partial class CarProperty
{
public static bool Move(int s) {
Accelerate(s);
return true;
}
static partial void Accelerate(int s);
}
此时在MainWindow下面添加代码,运行
public MainWindow()
{
InitializeComponent();
CarProperty.Move();
MessageBox.Show("所有动作都已结束");
}
结果是除了“所有动作已结束”之外没有任何其他动作。
在其他分部或者没有分部为Accelerate()方法添加内容时,该方法在编译时是被忽略的,所以不会有任何动作
下面再新建个类,作为分部类,实现Accelerate方法。
static partial class CarProperty
{
static partial void Accelerate(int s)
{
MessageBox.Show(s.ToString()+"已加速!");
}
}
注意分部类的关键词和访问级别都是相同,运行程序,可见Accelerate()方法已完全实现。
五.用途
在使用过程中,需要应用的方法可以在分部类内写出具体实现内容。在不需要应用该方法时可以注释掉,然后运行程序。
六.示例代码