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

扩展方法

时间:2017-08-01 17:49:09      阅读:114      评论:0      收藏:0      [点我收藏+]

标签:money   ext   允许   pac   添加   一个   font   标准   logs   

有许多扩展类的方式。 如果有类的源代码,继承α 口 第 4章所述)就 是给对象添加功能的好方法。
但如果没有源代码
,该 怎么办?此时可 以使用扩展方法,它允许改变一个类,但不需要该类 的源 、
代码 。
扩展方法是静态方法,它是类的一部分,但实际上没有放在类的源代码中。假定上例中的
Money
类需要一个方法 AddToAmomtrdec涮 am。 mtToAdd,。 但是,由 于某种原因,程序集最初的源代码
不能直接修改。 此时必须做的所有工作就是创建一个静态类
,把方法 AddToAmountO添加为一个静
态方法。 对应的代码如下
:

namespace Worker
(
  public statio class MoneyExtension
     (
           public static void AddToAmount〈 this MOney money, decimal  amountToAdd)
           (
                 money.Amount += amountToAdd;
           )
     }
)     

 


注意 AddToAmomjO方法的参数。 对于扩展方法,第一个参数是要扩展的类型,它放在 血s关键
字的后面。 这告诉编译器
,这个方法是 Money类型的一部分。 在这个例子中,Money是要扩展的类
型。 在扩展方法中
,可 以访 问所扩展类型的所有公有方法和属性。
在主程序中
,AddToAmomtO方 法看起来像是另一个方法 。 它没有显示第一个参数,也 不能对
它进行任何处理。 要使用新方法
,需 要执行如下调用,这与其他方法相同:
即使扩展方法是静态的,也要使用标准的实例方法语法。 注意这里使用 cash1实 例变量来调用
AddToAmountO,而 没有使用类型名。
如果扩展方法与类 中的某个方法同名
,就从来不会调用扩展方法 。 类中已有的任何实例方法
优先

扩展方法

标签:money   ext   允许   pac   添加   一个   font   标准   logs   

原文地址:http://www.cnblogs.com/HedgehogBlog/p/7269528.html

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