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);
在以下情况下,不需要使用分部方法即可实现:
没有任何可访问性修饰符(包括默认的 专用)。
返回 void。
没有任何输出参数。
没有以下任何修饰符:virtual、override、sealed、new 或 extern。
this 和 partial 的区别
C# - this 的用法 一文中有介绍 this 具有扩展类方法的功能,那么 this 和 partial 有区别是?
概念的区别,this 是对原有功能进行扩展,partial 是将整体分成多个部分存放,便于维护。
实现方式的区别
patial 分部的签名要求一致,必须是 partial class/interface/struct Name,文件名不一样。 this 扩展类名不一样,但必须是静态的类,静态的方法,方法第一个参数必须是 this ClassName
调用的区别
partial 分部的各个文件必须在同一 namespace 命名空间 this 扩展可以在不同命名空间,但是需要导入扩展的 namespace 命名空间后才能调用扩展的方法。