泛型集合和键值对在C#中比较常用,
该段课件中通过案例讲解泛型集合的使用方式.
如何自己定义泛型集合,泛型方法,泛型接口及使用
自定义的泛型如何通过where进行约束.
泛型中常用的几个泛型方法。
-------------------------------------------------
泛型集合
List<T>,
Dictionary<K,V> :键不能重复,值可以重复
List<T>,Dictionary<K,V>
案例:
合并两个集合中的重复项 案例:随机生成10个1-100之间的数放到List中,要求这10个数不能重复,并且都是偶数(添加10次,可能循环很多次。)
案例:
把分拣奇偶数的程序用泛型实现。List<int> 把123转换为:壹贰叁。
Dictionary<char,char> 计算字符串中每种字母出现的次数“Welcome ,to Chinaworld”,不区分大小写。
-------------------------------------------------
自定义泛型
泛型的目的:还是代码重用。
T:一般叫做“类型参数”,把数据类型作为参数传递。
一般用T类表示或者以大写T开头的
比如:TKey,TValue、TOutput、TResult…
泛型类、泛型接口、泛型方法(泛型方法中的类型推断)、泛型委托(*)
------------------------------------------------
课后练习:
练习1:英汉翻译。可以使用WinForm做。
练习2:编写一个函数进行日期转换,将输入的中文日期转换为阿拉伯数字日期,比如:二零一二年十二月月二十一日要转换为2012-12-21。(处理“十”的问题:1.*月十日;2.*月十三日;3.*月二十三日;4.*月三十日;)4中情况对“十”的不同翻译。1→10;2→1;3→不翻译;4→0【年部分不可能出现’十’,都出现在了月与日部分。】
测试数据:二零一二年十二月二十一日(2012年12月21日)、二零零九年七月九日、二零一零年十月二十四日、二零一零年十月二十日
------------------------------------------------
泛型约束:
使用where关键字进行类型约束
约束多个参数:可以对多个参数应用约束,并对一个参数应用多个约束,如下:
C#:
class Base{}
class Test<T,U>
where U:struct
where T:Base,new(){}