分部方法(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:

[GeneratedRegex("(dog|cat|fish)")]
partial bool IsPetMatch(string input);

有关详细信息,请参阅分部类和方法

另请参阅