C#==>泛型
来源:互联网 发布:陶辉 nginx 编辑:程序博客网 时间:2024/06/04 23:26
1,除泛型之外,C#中如果在编译期间无法确认类型,就要使用Object类,但Object类是有问题的,
①Object类没有类型安全(即编译过程中无法判断类型转换的合法性),必须进行强制类型转换
②Object类在与值类型惊醒转换的过程中,会有性能损失
2,使用泛型,(Framework2.0之后提供)。泛型可以保证类型安全,因为编译器会用特定的类进行替换
如:
我们使用ArrayList类的add方法添加对象的过程中,因为参数是object类型,所以我们可以添加数值型,字符串,自定义类型等等的数据。
但如果我们在使用的时候,这样来调用foreach(int i in ArrayList)的话,无法转换为int型的内容会抛出异常,这种异常在编译的时候不会被发现。
而使用泛型类就会在编译阶段发现问题,及早解决,如我们使用List<int>定义的内容,会规定只能使用int型
3,代码的重用,C#定义的泛型可以在在.net的其他语言中使用。
4,C#中对泛型类的描述规约
① 泛型类型的名称用字母T作为前缀
② 如果没有特殊的要求,泛型类型允许任意类替代,且只使用了一个泛型类型,就可以用字符T作为泛型类型的名称
③ 如果泛型类型有特定的要求,或者使用类两个或多个泛型类型,就应该给泛型类型使用描述性名称。
- C#==>泛型
- C/C+= 符号类型
- c+=4和c=c+4的区别。
- c+=4和c=c+4的区别
- while( c= getchar(c) &&c!='\n')为什么错误
- c语言:c=unsigned(c)> > (sizeof(int)*8-1);
- [C/C++]福尔摩斯 ABCDE*?=EDCBA
- <c:choose> <c:when test="">
- jstl 的if else <c:choose><c:when test="">如果</c:when><c:otherwise>否则</c:otherwise></c:choose>
- C#==>结构
- C#==>继承
- C#==>枚举
- C#==>相等
- C#==>委托
- c++==异常
- java + (C++) != C#
- JavaScript = C + Lisp
- tmp_src_filename=fdfs_check_bits.c
- 协同拨号器封共享破解补丁以及账号加密算法
- 解决用协同通信拨号器共享上网最简单实用的方法
- 字体的故事:简单为美的 Helvetica
- 模拟退火解决tsp
- JavaScript中的空类型
- C#==>泛型
- 贪婪算法实现tsp(担货郎问题)
- 遗传算法实现 但货郎问题(tsp)
- Struts 1.2国际化初解
- InstallShield制作的打包程序——设置示例
- 程序物语(七):项目经理预成长
- 计算(1,1,2,3,5,8,13.......N)的第N位的数值
- 乘法口诀表可以这样打印——使用列表解析创建矩阵
- 基于PassThru的NDIS中间层驱动程序扩展