博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C#泛型
阅读量:5243 次
发布时间:2019-06-14

本文共 1110 字,大约阅读时间需要 3 分钟。

    熟悉面向对象编程的开发人员都深谙这种编程的好处,其中之一就是“代码重用”,它大大提高了开发效率。泛型是CLR和编程语言提供的一种特殊机制,它支持另一种形式的代码重用,即“算法重用”。

    CLR允许创建泛型引用类型和泛型值类型,还允许创建泛型接口和泛型委托,CLR允许在引用类型、值类型或接口中定义泛型方法。

    泛型列表算法的FCL类称为List<T>(读作List of Tee)。这个类是在System。Collections.Generic命名空间中定义的。泛型List类的设计者紧接在类名后添加了<T>,表明操作的是一个未指定的数据类型,T表示变量名,也称为类型参数(type parameter)。

    根据Microsof的设计原则,泛型参数变量要么称为T,要么至少以大写T开头。大写T代表类型(Type),就像大写I代表接口(Interface)一样。

    List<DateTime> dtlist=new List<DateTime>(),使用泛型类型或方法时,指定的具体数据类型称为类型实参(type argument)。

    泛型为开发人员提供的优势有:源代码保护、类型安全、更加清晰的代码和最佳的性能。

  泛型最明显的应用就是集合类。FCL已经定义了几个泛型集合类,大多数都在System.Collections.Generic和System.Collections.ObjectModel命名空间中。要使用线程安全的泛型集合类,可以到System.Collections.Concurrent命名空间去寻找。

    泛型类型参数的类型称为开放类型(open type)如果为所有类型实参传递的都是实际数据类型,类型就称为封闭类型(closed type)例如:DictionaryStringKey<T>为开发类型,DictionaryStringKey<Guid>为封闭类型。

    元数,也就是类型要求的类型参数的个数。DictionaryStringKey<T>为一元;DictionaryStringKey<T1,T2>为二元,以此类推。

    泛型类型同一性。using DateTimeList=System.Collections.Generic.List<System.DateTime>;Boolean sameType=(typeof(List<DateTime>)==typeof(DateTimeList));加上using才不会丧失类型同一性(identity)和相等性(equivalence)

转载于:https://www.cnblogs.com/ice-baili/p/5879144.html

你可能感兴趣的文章
Android开发高手课 - 02 崩溃优化(下):应用崩溃了,你应该如何去分析?
查看>>
jenkins:忘记登录密码怎么办
查看>>
nodejs的事件驱动机制与传统webserver的多线程处理机制对比
查看>>
基于JQuery实现表单元素值的回写
查看>>
jmap命令
查看>>
jQuery插件之ajaxFileUpload
查看>>
第三次作业
查看>>
Python的classmethod和staticmethod区别
查看>>
Ubuntu12.04 英文环境下使用ibus输入中文并自动启动输入法
查看>>
SpringMVC 拦截器HandlerInterceptor(一)
查看>>
mvc知识应用
查看>>
数据结构之排序三:插入排序
查看>>
Class.forName(),classloader.loadclass用法详解
查看>>
团队任务3:每日立会(2018-10-25)
查看>>
创业记录0
查看>>
python pandas tensorflow使用总结
查看>>
UnityAssetExplorer + PowerVRTexTool
查看>>
jquery操作select取值,设置选中(转载)
查看>>
nodejs中间件拦截,express不登录无法进入后台页面
查看>>
c函数创建文件和路径
查看>>