栏目导航
热点推荐
- 如何配置Web.config文件 for ASP
- .NET小常识——答你所问
- ASP.NET程序中常用的三十三种代
- 一个“简单”的ASP.NET的服务器
- ASP.NET中使用AJAX中的方式
- 从N层到.NET详细剖析原理(2)
- 十项必须学习的.NET技术
- Visual Basic中文本框处理技巧集
- 几十个ASP.NET性能优化的常用方
- ASP.NET技术FAQ
- Asp.Net细节性问题精萃
- 十天学会ASP.net之第一天
阅览排行
.NET,你忘记了么?(三续)——重新理解List<T>
www.jz123.cn 2010-10-03 来源: 中国建站 责任编辑(袁袁) 我要投递新闻
周四面试的惨败,让我的心情着实糟糕了两三天。痛定思痛,决心回家继续苦读。
首先开始的就是对List的重新认知。在这里,让我们先从构造方法来重新认识List<T>的本质,先来看下上文中我所粘出的代码:
List<int> list = new List<int>();
for (int i = 0; i < 10; i++)
{
list.Add(i);
}
Random r = new Random();
for (int j = 0; j < 100; j++)
{
int temp;
int x1 = r.Next(10);
int x2 = r.Next(10);
temp = list[x1];
list[x1] = list[x2];
list[x2] = temp;
}
在上文中,我对这个List大批特批,现在,我们来重新看下这个List的构造:
public List()
{
this._items = List<T>._emptyArray;
}
先来看无参的构造方法,当无参的时候,.NET Framework其实是用一个_emptyArray来初始化了List中的items集合。那么_emptyArray又是什么呢?我们继续向下看:
private static T[] _emptyArray;
恩,他是一个静态字段,然后我们看下List<T>的静态构造方法:
static List()
{
List<T>._emptyArray = new T[0];
}
我们看到,_emptyArray其实是一个T类型的数组,个数为0。那么也就是说,当我们执行0参数的构造方法时,系统是把items集合给赋值为了一个T类型的个数为0的数组。
上一篇:.NET,你忘记了么?(三)——关于Array和List的使用 下一篇:.NET组件编程(1) 基础