zoukankan      html  css  js  c++  java
  • C#编程(二十一)----------扩展方法

    C#中的扩展方法

    有许多扩展类的方式.如果有类的源代码,继承就是给类添加功能的好方法.但是如果没有源代码,怎么办?吃屎可以使用扩展方法,它允许改变一个类,但不需要该类的源代码.扩展方法是静态方法,它是类的一部分,但实际上没有放在类的源代码中.例如我有一个Money,不知道源代码,需要一个AddToAmount(decimal amountToAdd).

    我们可以这么做:

    namespace Wrox

    {

    public static class MoneyExtension

    {

    public static void AddToAmount(this Money money,decimal amountToAdd)

    {

    money.Amount+=amountToAdd;

    }

    }

    }

    注意AddToAmount()方法的参数.对于扩展方法,第一个参数是要扩展的类型,它放在this关键字的后面.告诉编译器,这个方法是Money类型的一部分.在此例中,Money是要扩展的类型.在扩展方法中,可以访问所扩展类型的所有的共有方法和属性.

    在主程序中,AddToAmount()方法看起来像是拧一个方法.它没有显示第一个参数,也不能对它进行任何处理.要使用新方法,与使用其他方法一样:

    Monet cash=new Money();

    cash.AddToAmount(100m);

    如果扩展方法与类中的某个方法同名,就从来不会调用扩展方法.类中已有的任何实例方法优先.

  • 相关阅读:
    多通道 移位寄存器 verilog
    modelsim-altera IP核仿真
    modelsim-altera
    YUV视频显示软件+源码
    opencl教程
    使用VisualStudio读写NI FPGA板卡实例(基于FPGA Interface C API Generator)
    Visual Studio编译与调用DLL方法
    NI FPGA板卡程序设计概述
    LabVIEW中使用GPU进行高性能计算
    Windows平台编程涉及的函数
  • 原文地址:https://www.cnblogs.com/android-blogs/p/6553866.html
Copyright © 2011-2022 走看看