泛型类型参数的限制: where使用方法

设计泛型类:

利用泛型声明的类型限制机制,限制编译器类型参数的范围,运用 where 指令, 设置编译器限制范围,编译器就能在编译时刻对传入的类型进行检查。

    public class SortUtil<T> where T: ISortable    /// 泛型参数类型限制, 限制 T 为 ISortable 类型 
    {
        public  void   Sort(T target)
        {
            target.Sort();
        }
        public void SortDesc(T target)
        {
            target.SortDesc();
        }
    }

where 使用上的限制:

条件约束说明
where T : struct

类型参数必须是实值类型

可以指定Nullable以外的任何实值类型

where T: class类型参数必须是引用类型,指任何类(class)、接口(interface)、委托(delegate)或数组(array)类型
where T: new ()

类型参数必须拥有声明为public 的无参数构造函数

将new()条件约束与其他条件约束一起使用时,一定要将其指定为最后一个

where T: <base class name>类型参数必须本身是指定的基类, 或派生自该类
where T: <interface name>类型参数必须本身是指定的接口,或实现该接口可以同时指定多个接口条件约束限制的接口也可以是泛型的
where T: U提供给T的类型参数必须是(或派生自)提供给U的参数

 

 

 

 

 

 

 

 

 

链接: where(泛型类型约束)

 

转载于:https://www.cnblogs.com/generalLi/p/8479605.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值