- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
泛型 一、泛型概述 二、泛型接口、泛型类及泛型方法 一、泛型概述 1. 什么是泛型 2. 为什么要引入泛型 3. .NET Framework 2.0 的泛型类 1. 什么是泛型 泛型是通过“参数化类型”来实现在同一则代码中操作多种数据类型。 泛型类型是一种编程范式,它利用“参数化类型”将类抽象化,从而实现更为灵活的复用。 泛型赋予了代码更强的安全性、更好的复用、更高的效率和更清晰的约束 2. 为什么要引入泛型 通常在讨论数组时都需要预设一个前提,即到底要解决的是整数、小数、还是字符串的运算问题。因此,在使用数组时需要首先确定数组的类型,然后再把相同类型的数据放入数组中。例如,把100个整数存入数组中,得到一个整型数组,而把100个自定义的Student对象存入数组中,得到一个对象型或Student型数组。 利用数组来管理数据,虽然直观、容易理解,但存在很大的局限性,仍然需要重复编写几乎完全相同的代码来完成排序和查找操作。为此,C#提供了一种更加抽象的数据类型—泛型,以克服数组的不足。当利用泛型来声明这样一个更抽象的数据类型之后,再也不需要针对诸如整数、小数、字符、字符串等数据重复编写几乎完全相同的代码。 具体思路如下:首先声明这种泛型数据类型,声明时不用指定要处理的数据的类型,只讨论抽象的数据操作,如排序、查找等。在实际引用这种泛型数据类型时,先确定要处理的数据类型,再执行相应的操作。因此,泛型是一种“泛泛而谈”的数据类型。 3. .NET Framework 2.0 的泛型类 (1) .Net Framework提供的泛型集合类,包括List、Queue、Stack、Dictionary等,这些集合类实现了增加、删除、清除、排序和返回集合元素值的操作,且这些操作方法对任意类型的数据都有效。 (2) 列表List的使用 格式:List元素类型 对象名 = new List元素类型(?); 例如:ListString list = new Liststring(); list.Add(罗福强); list.Add(30); (3)字典Dictionary的使用 格式:Dictionary键类型,值类型 对象名 = new Dictionary键类型,值类型(?); 例如: Dictionarystring, string dic = new Dictionarystring, string(); dic.Add(姓名, 罗福强); dic.Add(性别, 男); 二、泛型接口、泛型类及泛型方法 1. 泛型接口 2. 泛型类 3. 泛型方法 1. 泛型接口 (1) 泛型接口通常用来为泛型集合类或者表示集合元素的泛型类定义接口。对于泛型类来说,从泛型接口派生可以避免值类型的装箱和拆箱操作。 (2) .Net Framework的泛型接口 (3) 自定义泛型接口的一般形式 [访问修饰符] interface 接口名类型参数列表 { //接口成员 } 例如: interface IDateT { } 2. 泛型类 当一个类的操作不针对特定或具体的数据类型时,可把这个类声明为泛型类。泛型类最常用于集合,如链接列表、哈希表、堆栈、队列和树等。 一般情况下,创建泛型类的过程为:从一个现有的具体类开始,逐一将每个类型更改为类型参数,一直达到通用化和可用性的最佳平衡。 定义泛型类的一般形式 其中,“类型参数列表”不指定数据类型,当具有多个类型参数时使用逗号分隔。“类型参数约束”用来限定泛型类所要处理的数据类型,用where关键字指定。 常见的类型参数约束 定义泛型类的注意事项 创建自定义的泛型类时,需要特别注意以下事项: (1)将哪些类型通用化为类型参数 一般规则是:能够参数化的类型越多,代码就会变得越灵活,重用性就越好,但太多的通用化会使其他开发人员难以阅读或理解代码。 (2)如果存在约束,应对类型参数应用什么约束 一般规则是:应用尽可能最多的约束,但仍能够处理需要处理的类型。例如,如果知道泛型类仅用于引用类型,则应用类约束。这可以防止泛型类被意外地用于值类型,并允许对 T 使用 as 运算符以及检查空值。 (3)是否将泛型行为分解为基类和子类 由于泛型类可以作为基类使用,其注意事项与非泛型类相同 3. 泛型方法 泛型方法是在泛型类或接口中使用类型参数声明的方法 一般形式:[访问修饰符] 返回值类型 方法名类型参数列表(形式参数列表) { //语句 } 例如: public string getInfoT() { //语句 } (源代码参见帮助文档) 本章要点 本章分3个专题详细介绍了C#面向对象程序设计方面的高级应用。首先介绍
您可能关注的文档
最近下载
- 低空经济行业专题系列二:eVTOL动力系统的市场空间、技术趋势和产业链机遇-国信证券.pptx VIP
- 化妆品105条考试试题.docx VIP
- 矛盾化解与行为习惯养成主题班会课件.pptx VIP
- 人教版(2024)新教材小学二年级美术上册第三单元《第3课 玩具的巧思》精品课件.pptx
- 最新人教版初中物理教材目录.docx VIP
- 机械加工生产操作岗位培训试卷.pdf VIP
- 2025至2031年中国实木砧板行业投资前景及策略咨询研究报告.docx
- 《微信营销与运营》5套期末考试卷AB卷带答案习题试卷模拟卷.docx VIP
- 大学生职业生涯规划.pdf VIP
- 5年级下册期末练习卷.docx VIP
原创力文档


文档评论(0)