zoukankan      html  css  js  c++  java
  • 扩展方法

    扩展方法是说,你原来的类,没有这么个方法,可是你想用这个方法,于是就出现扩展方法。

    比如string这个类他没有为字符串添加双引号的方法,这个时候就能自己写扩展方法让string具有这个方法

    var original = "ABCD";
    var quoted = original.Quote();
    Console.WriteLine(original);
    Console.WriteLine(quoted);
    
     
    
    public static class StringExtension
    {
    public static string Quote(this string str)
    {
    return $""{str}"";
    }
    } 

      有以下几点要注意的

    1.必须要在一个静态类里面声明一个静态方法

    2.静态方法的第一个参数必须是用this打头的,并且这个参数的类型是要依附的类的类型

    3.在使用这个方法的时候,不需要为第一个参数提供实参,因为实例本身就是这个实参

    再如下面这个栗子

    namespace Trimming {
    static class DoubleExtension {
    public static double Round(this double value, int digits) {
    return Math.Round(value, digits);
    }
    }
    
    class Program {
    static void Main(string[] args) {
    var d = 12.3456789;
    var r1 = d.Round(2);
    var r2 = d.Round(4);
    Console.WriteLine(d);
    Console.WriteLine(r1);
    Console.WriteLine(r2);
    }
    }
    }
    

      

  • 相关阅读:
    barcode制作条形码及破解
    软件敏捷架构师
    软件需求分析三步走
    GDI+显示GIF动画
    CSpinButtonCtrl的弱智问题
    [C++] STL里面的map
    [C#] 再议Exception
    [C++] unsigned是麻烦制造者
    用GDI+转BMP为WMF、EXIF、EMF格式
    [C++] 编译时的warning
  • 原文地址:https://www.cnblogs.com/1521681359qqcom/p/11397800.html
Copyright © 2011-2022 走看看