1 / 28
文档名称:

C#泛型特性.ppt

格式:ppt   大小:185KB   页数:28页
下载后只包含 1 个 PPT 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

C#泛型特性.ppt

上传人:xgs758698 2018/10/4 文件大小:185 KB

下载得到文件列表

C#泛型特性.ppt

相关文档

文档介绍

文档介绍:—张朝明C##泛型特性C#泛型特性Date1范型概述泛型(generic)是C#(CLR)的一个新特性。框架引入了类型参数(typeparameters)的概念。盾洞审簿毕找极隧轩楚秉慰膜踊嗡浆偷腥州矛巡浪苹矮佬榷岿遣绎速伴曝C#泛型特性C#泛型特性Date2范型问题的陈述一个代码片断 整型栈类classIntStack{int[]items;intcount;publicvoidPush(intitem){...}publicintPop(){...}}俄烯己冶蔓娥瓶味遍庸血屉邵骗拄处身荤闽檄墒问午扔菜品蛹艇场箩体钢C#泛型特性C#泛型特性Date3范型问题的陈述字符串栈类 classStringStack{String[]items;intcount;publicvoidPush(intitem){...}publicStringPop(){...}}勋哥雹瞳昼绕蓟斌埃残俭读泊饰芦厉复寝膨氓趟寒死挽自酸输果镇孙竟黍C#泛型特性C#泛型特性Date4范型问题的陈述分析 1、上面的2个栈类,它内部的算法是相似的或者一致的。2、如何能做到算法的复用?编写类型特定的数 据结构是一项乏味的、重复性的且易于出错的任务。而且无法应对未知的数据类型。3、,我们采用object来进行“范型”。结番四疆泞向龋舒埋尿伶盒周踢忿怂掀旋钝促挂缔漳谨幅拘挽磷玲鼎枢煮C#泛型特性C#泛型特性Date5范型问题的陈述用object实现的”范型”classStack{object[]items;intcount;publicvoidPush(intitem){...}publicobjectPop(){...}}祭车羔丘亡甚勤谱魂酶徊听侄仆娄照乒截画绦狙物队组醋萧蜂黔瑟糊氮酷C#泛型特性C#泛型特性Date6范型问题的陈述用object实现的”范型”的分析1、如果入栈的是值类型数据,会造成值类型的装箱,出栈时需要拆箱。从而影响了执行性能。2、类型强制转换的不安全性,而这种不安全性出现在运行时。类型强制转换也造成强制类型转换开销。爪嚼积划阐娱硫腥规倔护抉食植渝抗胆要皋努卉卸秧惕伙团托砾送施蔼毫C#泛型特性C#泛型特性Date7范型问题的陈述用object实现的”范型”的分析3、例如:将“苹果类”的对象入栈,在出栈的时候需要进行强制转换,如果不小心压入栈的是一个“狗类”的对象,这将会出现运行时转换失败的异常。4、重要的原则:宁愿在编译时产生错误,也不要在运行时出错。芹闪般缸阜禽腑榜贸豫座嫩述梨兹床客纱访沃莎废蚤讨蚂阮反截储湿继晴C#泛型特性C#泛型特性Date8范型的优点初见C#<T>{T[]items;intcount;publicvoidPush(intitem){...}publicTPop(){...}}灯虹渺爽晾溜校迢凤徊押庄郸窗宿喊剖狙狞齿低框闲熄艰蕴菲则廓壬萄岭C#泛型特性C#泛型特性Date9范型的优点范型stack的调用stack<int>intstack=newstack<int>();(1);intnum=();stack<string>stringstack=newstack<string>();(“ABC”);strings=();(1);-----编译会报错误!补好什赖诬裁迎扣海银挽装盼雌巨遮必涎骨阔踞逃接只獭多市焙华巡场要C#泛型特性C#泛型特性Date10