泛型 17_9_5

泛型:类型作为参数进行传递

using System.Collections.Generic; //引入泛型命名空间

public static T Swap<T>(ref T a,ref T b){                       //定义什么类型 T就是什么类型的参数

            T temp = a;                                                           //交换外界传入的a 和 b

            a = b;

             b = temp;

}


int x = 2, y = 3;

Swap<int>(ref x,ref y);                    //x 和 y 必须是相同类型

floatt z =3.0f,s = 5.0f;

Swap<float>(ref z,ref s);


public static U Add<U,T>(U a,T b){                      //返回值类型为U

            return a;                                          //return U 类型的值

}


public static bool IsBigger<U> (U a,U b)where U:Comparable{          //限制写在参数之后 大括号之前

            return a.CompareTo(b)>0;

}



泛型常用的约束类型:

1. where T:struct :表示泛型T是值类型(小数,整数,char,bool,

struct)

2. where T:class :表示泛型T是引用类型

3. where T:new() :表示这个泛型具有一个无参数的构造方法,如果有多个约束,new()必须放在最后

4. where T:基类名 :表示这个泛型是该基类或者其派生类

5. where T:接口名 :表示泛型是实现了该接口的类型

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 136.泛型 泛型代码让你可以写出灵活,可重用的函数和类型,它们可以使用任何类型,受你定义的需求的约束。你可以写出...
    无沣阅读 1,528评论 0 4
  • 本章将会介绍 泛型所解决的问题泛型函数类型参数命名类型参数泛型类型扩展一个泛型类型类型约束关联类型泛型 Where...
    寒桥阅读 655评论 0 2
  • 墨水里面有个我 那个我无比疲倦 就像刚刚跑完1295公里 划下一条浅浅的黑色路径 直到需要更换笔芯 大海里面有个我...
    浩瀚哥阅读 240评论 0 0
  • 点击参与活动==【观看教程】点击参与活动==【观看教程】点击参与活动==【观看教程】点击参与活动==【观看教程】 .
    王者荣耀活动阅读 380评论 1 0
  • 《你的降落伞是什么颜色》,介绍了日常跳槽求职方面的技巧,盘点即对自己提问,发掘出兴趣和天赋,排序即筛选出最喜欢最擅...
    小惠_f2b8阅读 178评论 0 0