C#3.0 partial method

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.委托不能修饰成分部方法

  

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值