泛型约束,实现约束特定类型的List

本文介绍了C#中泛型约束的使用,包括struct、class、接口约束、类约束以及new()约束。举例说明了如何创建DisposableList类,约束类型为引用类型且实现IDisposable接口。此外,还探讨了C#中的索引器,解释了索引器允许类实例像数组一样被索引,并通过Student类和Score数组展示了索引器在封装内部集合时的应用。
摘要由CSDN通过智能技术生成

一、泛型的约束有
T:struct 封闭的类型为值类型
T:class 封闭的类型为引用类型
T:IInterfaceName 封闭的类型必须实现接口IInterfaceName
T:className 封闭的类型必须是className类或其子类
T:new() 封闭的类型必须带有无参的构造方法
T:U T的约束继承于U

使用的方法
where T:struct,class 封闭的类型为值类型且为引用类型,不存在会报错
所以约定如果有struct 或者class 必须在所有约束前面
所以struct或者class只会出现一种
其中的关系为与的关系,就是约束中的条件必须全部满足

Demo:DisposableList类 重新实现List 并且where T:class,IDisposable

 class DisposableList<T>
        where T : class, IDisposable {
   
        //存储数据用的List
        private List<T> _items = new List<T>();

        //实现索引器
        public T this[int index]
        {
   
            set
            {
   
                _items[index] = value;
            }
            get
            {
   
                return _items[index];
            }
        }

        //实现Add
        public void Add(T value) => _items.Add(value);

        //实现delete,释放value
        public void Delete(T item) => item.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值