码迷,mamicode.com
首页 > 其他好文 > 详细

扩展方法

时间:2015-04-26 01:11:49      阅读:223      评论:0      收藏:0      [点我收藏+]

标签:

为一个类增加方法有3中方式:

1,修改原类
2,继承后再新增类
3,在另一个类中使用该类的公有成员编写一个方法
 
然而第三种方法不优雅,要实例化类,再用对象来调用方法。
扩展方法就能让被修改类的对象直接调用这个新方法。
例子:
步骤:
1,编写静态类,这个静态类应该与被扩展的类在同一个命名空间,即使没有,也有引用被扩展类的命名空间
2,编写静态方法,静态方法就是要扩展的方法
这个静态方法的第一的参数必须是this 被扩展类名 标示符
比如:
  方法名(this 被扩展类名 标示符,....这里可以是其他参数...)
//这里的标示符代表调用这个方法的对象
  1.  1 class MyDate
     2 {
     3   private double a;
     4   private double b;
     5   private double c;
     6 //有赋值构造函数,这里省略
     7   public double sum()
     8   {return a+b+c;}
     9 }
    10 //现在创建一个新类,这个类有一个方法能返回abc的平均值
    11 static class ExtendMydate//静态类
    12 {
    13   public static double Average(MyDate md)
    14   {return md.Sum()/3;}
    15 }
    16 使用时:
    17 ExtendMydate.Average(md)
    18 //md为Mydate对象
    19 
    20 如果要这么用:
    21 md.Average(md);//看起来像给MtDate加了一个方法
    22 则:
    23 改为:public static double Average(this Mydate md)
    24 {
    25    ......
    26 }

     

 
扩展方法需求如下面
扩展方法必须声明为static。
扩展方法声明所在类必须是static
扩展方法必须包含关键字this作为它的第一个参数类型,并在后面跟着它所扩展类的名称。
 

 

扩展方法

标签:

原文地址:http://www.cnblogs.com/Recoding/p/4457144.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!