C#新增的特性中引起争议的有许多,分部方法(Partial Method)算是一个。分部方法通常被定义在一个分部类中,在常规的类文件中也可实现。如果分部方法没有被实现,编译器就不会、对他们进行编译。
分部方法有着严格的限制。它们必须是私有的,不能返回值,不能有输出参数。因为任何针对没有被实现的分部方法的调用都会简单地被忽略,所以说这些限制是非常有必要的。反过又意味着,分部方法不能作为一个明确分配的变量。Visual Basic也有分部方法,尽管VB不需要对变量的明确分配,它也有同样的限制。
有那么多的限制,有人可能会问,“它们有什么优点?”。这个问题问得好,基本上,分部方法仅被代码生成器在处理轻量级事件的时候使用。就像 Alexander Jung所解释的 :