装箱、拆箱、泛型
来源:互联网 发布:.ds store windows 编辑:程序博客网 时间:2024/06/06 00:26
这个例子中将连接2个int和一个string,所以重载列表中最匹配的方法是string.concat(o,o,o).第一个实例i是int类型,转成object类型,进行了一次装箱操作.”and”是string,string本身是引用类型.第3个实例(int)o是值类型,同理进行一次装箱操作.优化方法如下
int i = 123;
object o = i;//只有1次装箱操作
i = 456;
Console.WriteLine(i.tostring() +//无装箱,string类型是一个引用类型
"and" +
o//无装拆箱);
例子2:普通类型和泛型
//结构Person
struct Person
{
private string name;
public Person(string name)
{
this.name = name;
}
public string Name
{
get { return name; }
set { name = value; }
}
}
class Program
{
static void Main(string[] args)
{
Person p = new Person("jason");
//普通集合版本
ArrayList arr = new ArrayList();
arr.Add(p);//加入到集合,装箱操作
Console.WriteLine(((Person)arr[0]).Name);//访问集合元素先拆箱
//泛型集合版本
List<Person> list = new List<Person>();
list.Add(p);
Console.WriteLine(list[0].Name);
}
}
转载的,注释已经说明了,
非泛型需要装箱拆箱了,这样会影响性能。
泛型执行定义了类型,避免了装箱和拆箱操作,性能有很大提高了
- 装箱、拆箱、泛型
- C# 装箱 拆箱 泛型
- C# 装箱、拆箱、泛型
- 装箱,拆箱
- 装箱-拆箱
- 装箱 拆箱
- 装箱 拆箱
- 装箱、拆箱
- 装箱AND拆箱
- “装箱”与“拆箱”问题
- 装箱OR拆箱
- c#装箱,拆箱
- java 装箱/拆箱
- C# 装箱 拆箱
- java拆箱 装箱
- jdk 5.0 装箱 拆箱
- C# 装箱 与 拆箱
- 2012.6.6装箱、拆箱
- iPhone 判断 文件是否存在
- linux下的多线程调试(gdb)
- awk内置字符串函数详解
- 根据点集生成polygon
- iPhone 应用中发送邮件
- 装箱、拆箱、泛型
- (2011.07.16-2011.07.21)六天的学习小记
- org.hibernate.InvalidMappingException: Could not parse mapping document from resource 处理办法
- POJ1001 Exponentiation 高精度乘法
- [Linux] static library & dynamic library
- 数据结构之线性结构(单链表)【二】
- Winodws HOOK 之键盘钩子
- 如何调用Sphinx 和api接口
- Invalid file name: must contain only [a-z0-9_.]