网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > ASP.NET教程
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
本月文章推荐
.[视频]vs2005入门之数据类型(日期.
.[视频]Visual Studio 2005入门之.
.ASP.NET讲座(6)-ASP.NET的几种主.
.十天学会ASP.net之第六天.
.[视频]Visual Studio 2005入门之.
.[视频]Visual Studio 2005入门之.
.十天学会ASP.net之第一天.
.[视频]Visual Studio 2005入门之.
.[视频]Visual Studio 2005入门之.
.IIS5 IIS6 IIS7的ASP.net 请求处.
.Asp.net编程中的数组基础实例学习.
.[视频]Visual Studio 2005入门之.
.ASP.NET中数据库的操作初步----连.
.[视频]Visual Studio 2005入门之.
.ASP.NET中Cookie编程的基础知识.
.ASP.NET中数据库的操作初步----增.
.[视频]Visual Studio 2005入门之.
.ASP.NET程序员应用程序域须知.
.[视频]vs2005入门之变量的概念\声.
.[视频]Visual Studio 2005入门之.

.NET泛型基础

发表日期:2006-8-27


泛型较为广泛地被讨论,这里写到的只是作为新手的入门级认识。

泛型最常应用于集合类。

泛型的一个显而易见的优点在于可以在许多操作中避免强制转换或装箱操作的成本或风险,拿ArrayList这个集合类来说,为了达到其通用性,集合元素都将向上转换为object类型,对于值类型,更是有装箱拆箱的成本:

static void Main(string[] args)

{

ArrayList al = new ArrayList();

al.Add(1);

}

在IL中是:

IL_0008:  ldc.i4.1

IL_0009:  box        [mscorlib]System.Int32

IL_000e:  callvirt   instance int32 [mscorlib]System.Collections.ArrayList::Add(object)

box操作就是装箱,具体过程是把值类型从栈中弹出,放入堆中,同时把在堆中的地址压入到栈中,频繁出现这样的操作,成本比较大。


所以在2.0中,遇到以上的应用,应该使用泛型集合类List<T>:

static void Main(string[] args)

{

    List<int> l = new List<int>();

    l.Add(1);

}

 

另一个比较常用的泛型集合类是Dictionary<T,T>,用于保存键值对:

static void Main(string[] args)

{

    Dictionary<int, string> dict = new Dictionary<int, string>();

    dict.Add(1, "SomeBook1");

    dict.Add(2, "SomeBook2");

    dict.Add(3, "SomeBook3");

 

    Console.WriteLine(dict[2]);//output:SomeBook2

    dict[2] = "SomeCD1";//modify

    Console.WriteLine(dict[2]);//output:SomeCD1

 

    dict.Remove(2);//delete

 

    foreach (KeyValuePair<int, string> kv in dict)

    {

        Console.WriteLine("Key = {0}, Value = {1}",kv.Key, kv.Value);

    }

}
http://www.cnblogs.com/KissKnife/archive/2006/08/26/486807.html

上一篇:优秀ASP.NET程序员修炼之路 人气:9458
下一篇:[视频]vs2005入门之起始页与创建WEB站点和创建新页面 人气:8139
浏览全部.NET泛型的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐