zoukankan      html  css  js  c++  java
  • C# 扩展方法 总结

    扩展方法是静态方法,它是类的一部分,但实际上没有放在类的源代码中。

    设计一个Money类

     1     public class Money
     2     {
     3         private decimal amount;
     4         public decimal Amount
     5         {
     6             get;
     7             set;
     8         }
     9         public override string ToString()
    10         {
    11             return "$" + Amount.ToString();
    12         }
    13     }

    假设向Money类中添加一个方法AddToAmount,但是程序的源代码不能直接修改,此时就需要创建一个静态类,将方法AddToAmount()添加为一个静态方法,对应代码如下:

        public static class MoneyExtension
        {
            public static void AddToAmount(this Money money, decimal amountToAdd)
            {
                money.Amount += amountToAdd;
            }
        }

    对于扩展方法,第一个参数是要扩展的类型,它放在this关键字的后面,这就告诉编译器,这个方法是Money类的一部分。

    在执行新方法的时候,不需要第一个参数,如下:

     1 Cash1.AddToAmount(10M); 

    即使扩展方法是静态的,也要使用标准的实例方法语法。

    如果您觉得感兴趣的话,可以添加我的微信公众号:一步一步学Python
  • 相关阅读:
    Python之函数进阶
    Python之函数初识
    Python之 文件操作
    数据类型补充
    Python 基础三
    寒假学习第五天
    寒假学习第四天
    寒假学习第三天
    寒假学习第二天
    寒假学习第一天
  • 原文地址:https://www.cnblogs.com/xingzhui/p/5682159.html
Copyright © 2011-2022 走看看