- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
C#程序设计第5章泛型
2泛型泛型引例泛型方法★泛型类泛型集合
3本章目标理解泛型的基本概念及使用泛型的优点掌握泛型方法的定义和使用掌握泛型类的定义和使用掌握常用的泛型集合的使用
4泛型泛型方法★
5引例staticvoidSwap(refintx,refinty){inttemp;temp=x;x=y;y=temp;}staticvoidSwap(refdoublex,refdoubley){doubletemp;temp=x;x=y;y=temp;}思考:编写交换两个int数的方法?编写交换两个double数的方法?交换两个short数的方法?交换两个decimal数的方法?.....带来的问题:代码膨胀
6如果C#没有泛型ArrayListlist1=newArrayList();list1.Add(3);list1.Add(105);foreach(intxinlist1){Console.WriteLine(x);}Teacherteach=newTeacher();students.Add(stu1);students.Add(teach);foreach(Objectstuoinstudents){Studentstu=(Student)stuo;Console.WriteLine(stu.Name);}思考:集合的使用ArrayList、Stack、Queue、HashTable任何引用或值类型都将隐式地向上强制转换为Object(解决了代码膨胀)如果项是值类型,则添加时需要进行装箱操作,检索时需要进行拆箱操作带来的问题:装箱、拆箱兼容任何类型能否加入一个Teacher对象?学生对象集合
7类型安全2Student集合张三李四王五赵老师添加对象遍历集合对象存储不易控制类型转换容易出错Teacher对象运行错误
8泛型的概念通过泛型可以定义类型安全的数据结构,而无须使用实际的数据类型所谓泛型,即通过参数化类型来实现在同一份代码上操作多种数据类型,泛型编程是一种编程范式,它利用“参数化类型”将类型抽象化,从而实现更为灵活的复用。泛型的三大优点:可重用性类型安全效率
9泛型的定义C#中,可以定义:泛型接口泛型类泛型方法泛型事件泛型委托泛型定义是通过泛型参数(T)来进行定义的创建泛型类的实例时,则需要与泛型参数对应的实际类型
10泛型方法泛型方法是使用类型参数声明的方法。编译器能够根据传入的方法实参推断类型形参编译器只能根据实参推断泛型参数,此时可以省略指定实际泛型参数编译器不能根据返回值推断泛型参数演示案例:泛型方法[访问修饰符]返回值方法名类型参数列表(参数列表)可用于该方法的返回类型声明、参数类型声明和方法代码中的局部变量的类型声明。
11泛型方法//交换两个int数的方法staticvoidSwap(refintx,refinty){inttemp;temp=x;x=y;y=temp;}//交换两个double数的方法staticvoidSwap(refdoublex,refdoubley){doubletemp;temp=x;x=y;y=temp;}//交换任意两个数的方法staticvoidSwapT(refTx,refTy){Ttemp;temp=x;x=y;y=temp;}泛型inta=1;intb=2;Swapint(refa,refb);doublec=1.1;doubled=2.2;Swapdouble(refc,refd);调用
12泛型方法的重载泛型方法可以使用类型参数进行重载使用约束对方法中的类型参数启用更专门的操作
13泛型方法如果泛型方法的泛型参数与类型的泛型参数相同,则编译器生成警告方法的泛型参数隐藏了外部类型的泛型参数可以为方法的泛型参数提供另一个标识编译错误
您可能关注的文档
- 6手工钨极氩弧焊+6.6钨极氩弧垂直固定管对接焊+3填充与盖面层焊-《焊接操作与管理》+课件.ppt
- 6手工钨极氩弧焊+6.2钨极氩弧焊平敷焊+3送丝方式-《焊接操作与管理》+课件.ppt
- 6手工钨极氩弧焊+6.2钨极氩弧焊平敷焊+2持枪姿势和焊枪、焊件与焊丝的相对位置-《焊接操作与管理》+课件.ppt
- 7焊接生产质量管理+7.5焊后成品的检验+1外观检查和测量-《焊接操作与管理》+课件.ppt
- 6手工钨极氩弧焊+6.4钨极氩弧转动管对接焊+1焊前准备-《焊接操作与管理》+课件.ppt
- 7焊接生产质量管理+7.1焊接工序质量的影响因素及对策+2焊接机器设备因素-《焊接操作与管理》+课件.ppt
- 5.1活动计划及日程变更的处理+课件-《导游实务》.pptx
- 1.2导游人员的组成与合作+课件-《导游实务》.pptx
- 5.2行程计划的调整与安排+课件-《导游实务》.pptx
- 3.2旅游行程服务的程序规范+课件-《导游实务》.pptx
- 6手工钨极氩弧焊+6.2钨极氩弧焊平敷焊+1焊前准备-《焊接操作与管理》+课件.ppt
- 第7章+窗体的高级应用-1(课件)-+《算法与程序设计-C#》同步教学(清华大学版).pptx
- 第3章+C#面向对象编程-4(课件)-《算法与程序设计-C#》同步教学(清华大学版).pptx
- 第9章+文件(课件)-+《算法与程序设计-C#》同步教学(清华大学版).pptx
- 第4章+数组与集合-1(课件)-《算法与程序设计-C#》同步教学(清华大学版).pptx
- 7焊接生产质量管理+7.5焊后成品的检验+4物理方法的检验-《焊接操作与管理》+课件.ppt
- 第3章+C#面向对象编程-8(课件)-《算法与程序设计-C#》同步教学(清华大学版).pptx
- 第8章+多线程-2(课件)-+《算法与程序设计-C#》同步教学(清华大学版).pptx
- 7焊接生产质量管理+7.2焊接生产质量保证体系+3对钢熔化焊接接头的基本要求和缺陷分级-《焊接操作与管理》+课件.ppt
- 第6章+WinForm用户界面-3(课件)-+《算法与程序设计-C#》同步教学(清华大学版).pptx
最近下载
- 专题05 解三角形(10类题型全归纳)-2025年高考数学二轮热点题型归纳与变式演练(北京专用)(解析版).docx VIP
- 加氢实操考试112.doc VIP
- 汽油加氢装置操工高级理论知识试卷.doc VIP
- 初中物理校本课程教材《身边的物理学》.docx
- 日立电梯HPM(3-4MS)故障检测说明.pptx
- 道德与法治人教版二年级上册版教案教学设计.docx
- 科技背景下蜜雪冰城如何用数据驱动决策提升业绩.docx VIP
- 湖北师范大学 826计算机软件技术基础 2016年考研专业课真题.pdf VIP
- 蜜雪冰城数据驱动下的营销策略变革.docx VIP
- 机电安装工程合同标准版(业主版).doc VIP
文档评论(0)