C# 泛型

在C#早期的集合实现时,任何对象都会转成Object对象,值类型还要装箱取消装箱,在从集合获得项时,要重新转化为以前的类型。有两个问题:类型需要转化,装箱和取消装箱有开销;添加错误的类型时无法检查,
这样转化类型就会出错。

泛型约束是where T : class 时 ,类型参数不能使用 等号和不等号,即使是重载的。因为编译器认为这里的T是引用类型,引用类型的等号和不等号比较引用。要正确地用等号和不等号比较两个泛型类中的引用类型,要加上IComparable<T> 参数约束。

IComparable<T> 的实现不是分别实现大于 等于 小于 多个方法,是实现一个返回整数的比较函数。
小于大于等于0 分别是 小于大于等于比较的对象。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 我们在编写程序时,经常遇到两个模块的功能非常相似,只是一个是处理int数据,另一个是处理string数据,或者其他...
    _橙瘾阅读 4,057评论 0 1
  • 什么是泛型 我们在编写程序时,经常遇到两个模块的功能非常相似,只是一个是处理int数据,另一个是处理stri...
    北风知我意阅读 4,050评论 0 4
  • 什么是泛型 我们在编写程序时,经常遇到两个模块的功能非常相似,只是一个是处理int数据,另一个是处理string数...
    func_老衲姓罗阅读 1,783评论 0 1
  • 最近状态有点不对,所以就没有去更新笔记,塔防游戏也没继续开发,等调整好状态再继续塔防游戏。先做一些笔记找找感觉,估...
    一个有味道的名字阅读 5,150评论 0 2
  • 最近在看《C#高级编程(第九版)》这本书,看到了泛型接口这章。其中关于协变和逆变没太理解,讲得有点坑爹,网上查了许...
    幻凌风阅读 4,733评论 1 1

友情链接更多精彩内容