关于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()
可以使用这种技巧,简易的做一个钩子,当某些方法调用的时候,调用的一个分布方法,这个分布方法的具体实现,由具体的需求确认。