分部方法(C# 参考)
分部方法在分部类型的一部分中定义了签名,并在该类型的另一部分中定义了实现。 通过分部方法,类设计器可提供与事件处理程序类似的方法挂钩,以便开发者决定是否实现。 如果开发者不提供实现,则编译器在编译时删除签名。 以下条件适用于分部方法:
声明必须以上下文关键字 partial 开头。
分部类型各部分中的签名必须匹配。
构造函数、终结器、重载运算符、属性声明或事件声明中不允许使用 partial
关键字。
在以下情况下,不需要使用分部方法即可实现:
任何不符合所有这些限制的方法(例如 public virtual partial void
方法)都必须提供实现。
下列示例显示在分部类的两个部分中定义的分部方法:
namespace PM
{
partial class A
{
partial void OnSomethingHappened(string s);
}
// This part can be in a separate file.
partial class A
{
// Comment out this method and the program
// will still compile.
partial void OnSomethingHappened(String s)
{
Console.WriteLine("Something happened: {0}", s);
}
}
}
分部方法还可用于与源生成器结合。 例如,可使用以下模式定义 regex:
[RegexGenerated("(dog|cat|fish)")]
partial bool IsPetMatch(string input);
有关详细信息,请参阅分部类和方法。