.NET泛型基础
来源:互联网 发布:八毛门事件 知乎 编辑:程序博客网 时间:2024/05/22 07:08
泛型最常应用于集合类。
泛型的一个显而易见的优点在于可以在许多操作中避免强制转换或装箱操作的成本或风险,拿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
- .NET泛型基础
- .NET泛型基础
- .NET泛型基础
- .NET泛型基础
- 黑马程序员-.NET基础之泛型
- .NET基础之自定义泛型分析
- .NET基础之自定义泛型
- .Net 范型基础
- .NET开发基础:从简单的例子理解泛型
- .net 数据结构与算法基础:泛型编程、时间测试
- .net 基础
- .NET 基础
- .NET基础
- .net 基础
- .net基础
- .Net基础
- .Net 基础
- .net视频教程,.net基础视频教程
- ASP.NET中动态修改web.config中的设置项目(CS页代码)
- ASP.NET中动态修改web.config中的设置项目(前台代码)
- 饼图的一种画法
- 使用netclasses访问其他网站内容
- ASP.NET的用户控件
- .NET泛型基础
- ASP.NET追捕休整版
- 优秀ASP.NET程序员修炼之路
- 给.net初学者的一些建议(共勉之)
- .Net开发环境配置[OS/IIS/VS...]
- 让Apache支持ASP.NET
- 手把手教你建立ASP.NET开发平台
- 30分钟正则表达式指导
- ASP.NET中Cookie编程的基础知识(6)