泛型约束
1、接口约束
/// <summary> /// 接口约束 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="t"></param> /// <returns></returns> public static T Get<T>(T t) where T : ISports { return t; }
关键代码: where T :Isports
2、引用约束
/// <summary> /// 引用约束 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="t"></param> /// <returns></returns> public static T Get<T>(T t) where T : class { return t; }
关键代码: where T :class
3、值类型约束
/// <summary> /// 值类型约束 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="t"></param> /// <returns></returns> public static T Get<T>(T t) where T : struct { return t; }
关键代码: where T :struct
4、无参构造函数约束
/// <summary> /// 无参构造函数约束 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="t"></param> /// <returns></returns> public static T Get<T>(T t) where T : new() { return t; }
5、多种泛型约束
/// <summary> /// 多种泛型约束 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="t"></param> /// <returns></returns> public static T Get<T>(T t) where T :class,struct,new() { return t; }
注意:有多种约束是,一定要把 无参构造函数约束( new() )放到最后

浙公网安备 33010602011771号