分部类
public partial class Employee
{
public void DoWork()
{
}
}
public partial class Employee
{
public void GoToLunch()
{
}
}
编译时将对分部类型定义的属性进行合并
所部类在编译时会将所有分部类类中定义的以下内容进行合并:
- XML 注释
- interfaces
- 泛型类型参数属性
- 类属性
- 成员
例如,下面的声明:
partial class Earth : Planet, IRotate { }
partial class Earth : IRevolve { }
等效于:
class Earth : Planet, IRotate, IRevolve { }
分部方法
- 分部方法只可以定义在分部类中
- 分部方法返回值必须为void
- 分部方法可以有参数(包含被this、ref或params修饰的参数,但不能有out修饰符)
- 分布方法不能具有访问修饰符或virtual、abstract、override、new、sealed或者extern修饰符
- 当分部方法没有实现代码时,C#编译器会在编译时删除其调用语句。
例子
static partial class CarProperty
{
public static bool Move(int s)
{
Accelerate(s);
return true;
}
static partial void Accelerate(int s);
}
static partial class CarProperty
{
static partial void Accelerate(int s)
{
MessageBox.Show(s.ToString() + "已加速!");
}
}