.NET2.0泛型理解

 最近看到很多系统的源代码中都含有泛型的编程,所以心血来潮就查阅了MSDN之后code了一些代码来理解

泛型,的确在自己写代码的过程中,能发现很多问题,这些看书都是体会不到的。

Code

 

 

 

Test1为什么要泛型?
在foreach检索时进行取消装箱操作。强制转换以及装箱和取消装箱操作都会降低性能,而且对于创建异类集合的时候。
即向集合加入不同类型数据的时候,如上, foreach (int p in Array)就不能迭代所有内容,遇见字符串类型错误,而且C#编译器在编译的时不出错,在运行时才显示此错误,

Test2代码使用了泛型?
代码说明了加入集合的过程没有在进行装箱向上转换为object的操作了,而且编译器能够通过安全检查,只要是输入非整形的就会报错的,
这里编译器会同时候报两次错误,
错误 1 与“System.Collections.Generic.List<int>.Add(int)”最匹配的重载方法具有一些无效参数 C:\Documents and Settings\Administrator\桌面

\ConsoleApplication1\ConsoleApplication1\Program.cs 41 13 ConsoleApplication1
错误 2 参数“1”: 无法从“string”转换为“int” C:\Documents and Settings\Administrator\桌面\ConsoleApplication1\ConsoleApplication1

\Program.cs 41 23 ConsoleApplication1;

Test3如何用泛型?
第三个示例是简单的泛型应用,插入几个方法Insert,根据需要指定一个类型参数,就可以,编译器会自动检查类型是否和你提供的类型一致。

 

 -----------------------------------------------



 

posted @ 2009-01-06 10:30  假装90后  阅读(1188)  评论(4编辑  收藏  举报