美文网首页
C#扩展方法

C#扩展方法

作者: LEO_青蛙 | 来源:发表于2020-01-07 18:07 被阅读0次

C#扩展方法,使用this关键字

1、扩展方法能够向现有类型“添加”方法,而无需创建新的派生类型、重新编译或以其他方式修改原始类型。
2、扩展方法是一种特殊的静态方法,但可以像扩展类型上的实例方法一样进行调用。
3、C#扩展方法第一个参数指定该方法作用于哪个类型,并且该参数以 this 修饰符为前缀。

例子1(在泛型List<T>中扩展Random随机、Shuffle洗牌)

public static class List_Extension
{
   public static T Random<T>(this List<T> list)
   {
       return list[Math.Random(0, list.Count - 1)];
   }
   public static void Shuffle<T>(this List<T> list)
   {
       int num = list.Count;
       while (num > 1)
       {
           int index = Math.Random(0, --num);
           T value = list[num];
           list[num] = list[index];
           list[index] = value;
       }
   }
}

例子2(在Array中扩展Random随机、Shuffle洗牌)

public static class Array_Extension
{
   public static T Random<T>(this T[] array)
   {
       return array[Math.Random(0, array.Length - 1)];
   }
   public static void Shuffle<T>(this T[] array)
   {
       int num = array.Length;
       while (num > 1)
       {
           int num2 = Math.Random(0, --num);
           T val = array[num];
           array[num] = array[num2];
           array[num2] = val;
       }
   }
}

相关文章

  • C#扩展方法

    C#扩展方法,使用this关键字 1、扩展方法能够向现有类型“添加”方法,而无需创建新的派生类型、重新编译或以其他...

  • C#扩展方法

    转载自:c# 扩展方法详解扩展方法被定义为静态方法,但它们是通过实例方法语法进行调用的。 它们的第一个参数指定该方...

  • U3D_03_13

    关于C#的编程知识 注意了:C#扩展方法的声明必须是静态类和静态方法,你看这里都标注了static就是这个原因,使...

  • C#重温—扩展方法

    注意点: 必须在一个非嵌套的、非泛型的静态类中(所以必须是一个静态方法) 至少有一个参数 第一个参数必须附加thi...

  • C#的扩展方法

    public void class person{ publicperson() {private int...

  • C# LINQ扩展方法

    这几个方法IEnumerable都提供,大部分都返回IEnumerable对象,这样就能连接起来用。IEnumer...

  • C#扩展方法实现

    扩展方法被定义为静态方法,但它们是通过实例方法语法进行调用的。 它们的第一个参数指定该方法作用于哪个类型,并且该参...

  • C#-扩展方法

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

  • Unity的C#扩展方法

    一、扩展方法的条件:1、必须声明为静态类2、必须声明为静态方法3、方法的第一个参数为this二、作用:1、频繁调用...

  • Unity3d-C#扩展方法 C#扩展方法

    扩展方法 所谓的扩展方法,其实就是无需继承就可以改写类,让类中增加方法。直接通过实例调用的静态方法,因此即使实例是...

网友评论

      本文标题:C#扩展方法

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