C#高级编程:泛型原理与实现详解.pptxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

C#高级编程第四章泛型

本章目标理解非泛型集合的问题掌握泛型的类型参数(难点)掌握泛型方法的创建和使用(难点)掌握泛型类的创建和使用(难点)

本章任务实现泛型参数功能。实现Swap泛型方法。实现Point泛型类。

非泛型集合的性能问题类型转换inti=5;objecto=i;intj=(int)0;装箱拆箱集合类型处理ArrayListal=newArrayList();al.Add(1);inti=(int)al[0];类型转换、拆箱操作数据到集合中,并取出来使用,会发生许多次的装箱与拆箱操作,这就会极大的损耗整个程序的性能

ArrayListal=newArrayList();Personp=newPerson();inti=5;al.Add(p);al.Add(i);inti=(int)al[0];非泛型集合的安全问题不同类型加入集合需要取出集合中的数据的时候进行类型检查,以确保转换成功加入Person类型加入int类型类型转换,出错if(al[0]isPerson)Personp=(Person)al[0]正确处理方法如果集合在有很多的类型,处理就相当麻烦了

泛型内部结构publicclassListPerson:IListPerson,ICollectionPerson,IEnumerablePerson,IList,ICollection,IEnumerable{...publicvoidAdd(Personitem);publicReadOnlyCollectionPersonAsReadOnly();publicintBinarySearch(Personitem);publicboolContains(Personitem);publicvoidCopyTo(Person[]array);publicintFindIndex(System.PredicatePersonmatch);publicPersonFindLast(System.PredicatePersonmatch);publicboolRemove(Personitem);...}ListPerson泛型初始化ListPerson泛型产生的代码ListPersonlists=newListPerson()

泛型成员参数指定类型int[]myInts={10,4,2,33,93};Array.Sortint(myInts);foreach(intiinmyInts){Console.WriteLine(i);}非泛型指定类型指定类型输出类型

常用泛型类:StackStackintstacks=newStackint();stacks.Push(1);stacks.Push(2);Console.WriteLine(栈顶的元素:+stacks.Peek());Console.WriteLine(移除栈顶的元素:+stacks.Pop());Console.WriteLine(栈顶的元素:+stacks.Peek());Console.WriteLine(移除栈顶的元素:+stacks.Pop());try{Console.WriteLine(栈顶的元素:+stacks.Peek());Console.WriteLine(移除栈顶的元素:+stacks.Pop());}catch(InvalidOperationExceptionex){Console.WriteLine(发生错误:+ex.Message);}StackT表示了一种集合,其中的项采用的是“后进先出“方式

常用泛型类:QueueQueueintqueue=newQueueint();queue.Enqueue(1);queue.Enqueue(2);Console.WriteLine(第一个元素:+queue.Peek());Console.WriteLine(仍然是第一个元素:+queue.Dequeue());Console.WriteLine(第二个元素:+queue.Dequeue());try{queue.Dequeue();}catch(InvalidOperationExceptionex){Console.WriteLine(出现错误:+ex.Message);}QueueT表示了一种集合,其中的项采用的是“先进先出“方式

普通

文档评论(0)

fuwuzhishi + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档