美文网首页
C#-扩展方法

C#-扩展方法

作者: JervieQin | 来源:发表于2017-10-14 20:56 被阅读0次

Extension Method(扩展方法)
这是C#的特性,它允许脚本在不更新特定类对象的情况下,给类增加特定方法。比如以下这个例子。

    //我们先定义一个类Vector
 public class Vector{
     int x,y;
public int X{get;set;}
public int Y{get;set;}
}

   //我们再定义扩展方法,特别注意的是,扩展方法要定义在静态类中,
   //因为静态类不与特定对象相关联,所以可以直接被其他类调用
   // 不要忘了参数中的 this!   this只能标记第一个参数
public static class Extension{
      public static Vector Adds(this Vector p,Vector p1){
       return new Vector{ X = p.X+p1.X;Y=p.Y+p1.Y};
  }
}

   //最后我们可以直接通过对象调用这个扩展方法
public class Program{
     static void Main(string[] args) {
         Vector v = new Vector();
         v = v.Add(v);
         Console.WriteLine("v.X = {0} and v.Y = {1}", v.X, v.Y);
  }
}

相关文章

  • C#-扩展方法

    Extension Method(扩展方法)这是C#的特性,它允许脚本在不更新特定类对象的情况下,给类增加特定方法...

  • 2022-12-27【c#】哈希

    C#-关于GetHashCode的使用准则(转载+翻译)。 - 知乎 (zhihu.com)[https://zh...

  • Kotlin-面向对象-进阶

    扩展 扩展方法 Kotlin支持扩展方法和扩展属性。语法:被扩展的类/接口名.方法名() 父类不能使用子类的扩展方...

  • 扩展方法

    扩展方法: 扩展方法的类必须声明为static 扩展方法本身也必须声明为static 扩展方法必须包含关键字thi...

  • Swift- Extension

    扩展属性(只能是计算属性) 扩展构造器 扩展方法 通过扩展方法, 可以修改该实例self本身.但是方法前要加 mu...

  • ES6新增特性(二)

    ES6 的内置对象扩展 Array 的扩展方法 一、Array 的扩展方法 1. 扩展运算符(展开语法) 扩展运算...

  • JQuery写拓展

    基础 $.extend()扩展JQuery静态方法,$.fn.extend()扩展JQuery实例方法静态方法: ...

  • 23、扩展方法

    1.定义: 2.定于扩展方法 Personl类的定义 为Person类扩展方法 扩展方法被定义为静态方法,但它们是...

  • [IOS]优化UIButton的点击事件

    调用方法 添加扩展方法

  • kotlin中定义方法

    Kotlin 方法 扩展方法 方法内扩展有效 Lamda方法 最后一个表达式就是 lambda 的结果 方法作为参...

网友评论

      本文标题:C#-扩展方法

      本文链接:https://www.haomeiwen.com/subject/mcjlsxtx.html