博客统计信息

51cto博客之星
用户名:王杰瑞
文章数:91
评论数:417
访问量:168865
无忧币:2431
博客积分:3075
博客等级:7
注册日期:2007-06-20

我的技术圈(1)

更多>>
泛型——卐解(一)
2007-08-31 15:41:31
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://wangjierui.blog.51cto.com/186879/40560
天下大势,合久必分,分久必合。——《三国演义》
.NET 作为平台,意图统一群雄割据的编程天下,拥立C#为大王,分别封VB为VB.NET,VC为VC.NET,JScript为JScript.NET……并在各自能力基础上加以完善。朝廷之上,一律说IL,各运行机制一律遵从CLR规范。平台改革,泛型就是一例。也许某天,皇帝想去俄罗斯宫找金发碧眼波波娃,不想从里面走出黑肤厚唇南非妃子,没带翻译!异常出现了,龙颜大怒,从此立下规定:各妃子呆在自己宫中,不得串门,钦此~~得,这就是泛型规定。在这样的规定下,皇帝高兴了,想找谁就写谁的名字,肯定不会异常了,安全又高效。钦点微软上书房行走,黄马褂,三眼花翎~~~(啪~哪来的臭鸡蛋?)
 
言归正传,看看大NET律例上是怎么说的。
“泛型是具有占位符(类型参数)的类、结构、接口和方法”
有代码为例:
public class Generic<T>
{
    public T Field;
}
在创建泛型类的实例时,会指定实际类型来替换类型参数。
Generic<int> g = new Generic<int>();
g.Field = 10;
上面,用int类型替换T,然后可以给他赋值10,运行OK。那如果用string替换呢?当然赋值的时候就要赋值字符串。当然,T的替换不一定就是简单类型,还可以是自定义的类型(Class、struct等),而且在实战中经常碰到。总而言之,泛型就像函数y=f(x)一样,如果x=0,则函数中所有的x都应该用0来替换。看,数学太重要了,HOHO。
泛型通常用在集合和在集合上运行的方法中,那么首先要掌握的是泛型集合System.Collections.Generic 和System.Collections.ObjectModel ,尤其是前者。以后用集合的时候,尽量使用System.Collections.Generic空间下的类,首推List。
先看一下没有泛型以前的集合读写:
System.Collections.ArrayList list = new System.Collections.ArrayList();
for (int i = 0; i < 100; i++)
{
    list.Add(i);
}
int sum = 0;
for (int i = 0; i < 100; i++)
{
    sum += (int)list[i];//这里是异常频发点

用了泛型,效果就不一样了~~(广告词?)
List<int> list = new List<int>();
for (int i = 0; i < 100; i++)
{
    list.Add(i);
}
int sum = 0;
for (int i = 0; i < 100; i++)
{
    sum += list[i];
}
不用拆箱,如果类型不匹配,在编译阶段就会被揪出来。
例子是很简单的代码,但是在实战中使用率占8成以上。简单的练习学会8成应用,何乐而不为呢?
钦此~~~
 

本文出自 “王杰瑞的技术博客” 博客,请务必保留此出处http://wangjierui.blog.51cto.com/186879/40560

分享至
更多
一键收藏,随时查看,分享好友!
0人
了这篇文章
类别:.NET技术圈()┆阅读()┆评论() ┆ 推送到技术圈返回首页

文章评论

 
2007-08-31 19:56:34
想象和文笔都不错哪
看来做程序员真是可惜啦
应该做个编辑什么的

2007-09-01 08:20:12
抄袭java

2007-09-02 14:08:47
童心未泯,服了!!

2007-09-02 20:03:00
hungering for 万解 (二)

2007-09-03 10:21:23
老大你还会讲故事呢 哈哈
.NET 2.0 对泛型加了点安全性东西 比如int? a;

2007-09-04 07:51:56
佩服,说的简单明了!

2007-11-16 15:56:01
blackanger:
抄袭,也是没办法的,大势所趋呀
也指不定谁抄谁呢

 

发表评论            

【技术门诊】专家解析:软考重点难点及应试技巧
昵  称:
登录  快速注册
验证码:

请点击后输入验证码博客过2级,无需填写验证码

内  容: