C# partial keyword

Partial Classes and Methods (C# Programming Guide)

通过 partial keyword 可以将 class, struct, interface, method 的定义分拆到多个文件中。compiler 会将它们合并为一个定义。

典型例子如 WinForms, WPF 等程序。

分拆的没有片段都要使用 partial keyword,并且 accessibility 一致。

其中有一个片段指定了下面关键字,其它片段可以省略

partial methods

partial type 可以包含 partial method。

partial method,比如一个 class 片段包含 method 签名;另一个 class 片段包含 method 实现。如果只有签名而没有实现,compiler 将删除它,即使调用了它也不会产生错误。

partial method 必须返回 void。

partial method 是隐式的 private,这意味着不能使用 access modifiers,virtual 等。

// Definition in file1.cs
partial void onNameChanged();

// Implementation in file2.cs
partial void onNameChanged()
{
  // method body
}