• C# 3.0 / C# 3.5 扩展方法


    概述

      扩展方法是一种特殊的静态方法,可以像扩展类型上的实例方法一样进行调用能向现有类型“添加”方法,而无须创建新的派生类型、重新编译或以其他方式修改原始类型

    扩展方法的定义实现:

          public static class StringUtil
          {
              public static void WriteSelf(this string strSelf, int year)
              {
                  Console.WriteLine(string.Format("我是{0}人,今年是{1}年。", strSelf, year));
              }
          }

    扩展方法的调用:

                string str = "冷水江";
                str.WriteSelf(2016);      //在编译时会将 str.WriteSelf(2016) 替换成:StringUtil.WriteSelf(str, 2018);

        编译器认为一个表达式要使用一个实例方法,但是没有找到,需要检查导入的命名空间和当前命名空间里所有的扩展方法,并匹配到适合的方法。

    注意:

      (1)实例方法优先于扩展方法(允许存在同名实例方法和扩展方法)

      (2)可以在空引用上调用扩展方法。

      (3)可以被继承。

      (4)并不是任何方法都能作为扩展方法使用,必须有以下特征:

          它必须放在一个非嵌套、非泛型的静态类中

          它至少有一个参数。

          第一个参数必须附加 this 关键字

          第一个参数不能有任何其他修饰符(out/ref)

          第一个参数不能是指针类型,其类型决定是在何种类型上进行扩展

  • 相关阅读:
    牛客网 哈尔滨理工大学第七届程序设计竞赛决赛(网络赛-低年级组)求最大值
    HDU 5024 Wang Xifeng's Little Plot(DFS)
    java正则表达式
    48.自用qss
    47.使用帧缓存对象生成叠加
    46.Qt 使用OpenGL绘制立方体
    45.Qt openGL实现三维绘图
    44.Qt通过子类化qstyle实现自定义外观
    43.qt通过qss自定义外观
    42.写入XML
  • 原文地址:https://www.cnblogs.com/zhangchaoran/p/8681248.html
Copyright © 2020-2023  润新知