• C# 扩展方法


      C# 提供了一个很 NB 的机制:扩展方法。它可以让用户根据需要在类的外部为指定的类添加一些操作方法,而且这些方法和普通的实例方法使用起来完全一样(都是通过类实例调用)。

      C# 的扩展方法使用起来也非常简单。比如我们要为系统里最常用的 string 类添加一个方法 Jump,则可以使用以下方式:

    1     static class Class1
    2     {
    3         public static string Jump(this string s)
    4         {
    5             return s + " jump!";
    6         }
    7     }

      So Easy!这样在某个字符串调用该方法的时候,该方法将会返回这个字符串,并且后面跟着 " jump!"。比如我们在Main方法里这样调用:

            static void Main(string[] args)
            {
                string p = "Jone";
                Console.WriteLine(p.Jump());
    
                Console.ReadKey();
            }

      控制台将执行如下结果:

      所以,C# 里使用扩展方法只需要注意以下几点:

      1、扩展方法必需是一个静态方法;

      2、扩展方法所在的类必需是一个静态类;

      3、扩展方法至少要有一个参数(在扩展方法里需要使用该参数访问实例的成员,在调用该扩展方法时,第一个参数直接被系统忽略);而且参数列表的第一个参数的类型就是该方法要扩展的类型;

      4、第一个参数类型前面必需使用 this 关键字标识。

       当然,扩展方法还可以添加其它需要的参数,例如:

        static class Class1
        {
            public static string Jump(this string s,int n)
            {
                return s + " 跳了" + n + "";
            }
        }

      使用的时候添加上实参就 OK 了:

    string p = "Jone";
    Console.WriteLine(p.Jump(3));

      执行以后,结果如图:

      Over!

    (这东西,不是太常用,记得几年前学过,一直没用过。不过挺有意思的,也比较简单。。刚看到,复习一下。。)

  • 相关阅读:
    RNN 一对一
    js只保留整数,向上取整,四舍五入,向下取整等函数
    oracle中的decode的使用
    ORACLE里锁有以下几种模式,v$locked_object,locked_mode
    时间序列/信号处理开源数据集-转
    ORACLE常用数值函数、转换函数、字符串函数
    Oracle to_date()函数的用法
    java使double保留两位小数的多方法 java保留两位小数
    Oracle修改字段类型方法总结
    POI对Excel自定义日期格式的读取
  • 原文地址:https://www.cnblogs.com/zhhh/p/2539068.html
Copyright © 2020-2023  润新知