C#2.0有了partial class/struct/interface,而C#3.0又有了partial method,我们就且叫它分部方法吧。 这个新特性好像没怎么炒作,知名度不高。也是今天不小心才发现的,用vs2008 beta2的msdn查了一下,发现还是有些用处的。先帖下面的code吧:
partial class Customer
{
string name;
public string Name
{
get
{
return name;
}
set
{
OnBeforeUpdateName();
OnUpdateName();
name = value;
OnAfterUpdateName();
}
}
partial void OnBeforeUpdateName();
partial void OnAfterUpdateName();
partial void OnUpdateName();
}
其中最后三行是对方法的声明,当然这样子编译后是没问题的,用ILDASM一看,发现并没有找到那三个方法的踪影,这就是分部方法的妙处了。当你对方法进行声明后,而没有实现这个方法,在编译时将会移除这个方法。
使用分部方法还有几条规则:
1.必须有partial关键字,而且是void返回类型
2.参数可以用ref修饰,但不能用out修饰
3.分部方法会被隐式加上private关键字,因些不能是virtual函数
4.不能用extern修饰
5.可以用static,unsafe修饰
6.可以是泛型的
7.委托不能修饰成分部方法