关于partial类 以及partial方法来添加狗子信息
①partial方法只能声明在partial类中
②partial方法使用的时候可以在主题类中进行声明,声明的时候前面不能有访问性修饰符virtual abstract override new sealed或extern
③当partial方法没有寻找到匹配的方法的时候不会被调用
④partial类声明的一般为静态类或者私有类
Demo:
一个学生类,有一个Name属性,修改后打印修改的值
partial class Student {private string _name;//分布方法声明partial void PropertyChangedNotify(string name,string originalName,string value);public string Name{get{return _name;}set{PropertyChangedNotify(\"Name\",\"_name\",value);_name = value;}}}}
在另一个地方实现方法体
partial class Student {//分布方法,方法体partial void PropertyChangedNotify(string name, string originalName, string value) {Console.WriteLine($\"{name}的属性源为{originalName},修改的属性为{value}\");}}
注意的是没有实现分布方法的时候,给属性赋值的时候并不会调用PropertyChangedNotify()
可以使用这种技巧,简易的做一个钩子,当某些方法调用的时候,调用的一个分布方法,这个分布方法的具体实现,由具体的需求确认。