做响应式网站怎么设计,html5和php做网站,长沙人才市场招聘网最新招聘会,中国造价工程建设监理协会网站c#中#xff0c;数据类型主要分为2种#xff0c;分别为值类型和引用类型。把值类型转换为引用类型称为装箱#xff0c;把引用类型转换为值类型称为拆箱。在c#中#xff0c;值类型是在堆栈上分配内存的#xff0c;而引用类型是在堆上分配内存的。装箱的时候#xff0c;CLR…c#中数据类型主要分为2种分别为值类型和引用类型。把值类型转换为引用类型称为装箱把引用类型转换为值类型称为拆箱。在c#中值类型是在堆栈上分配内存的而引用类型是在堆上分配内存的。装箱的时候CLR会为堆上的对象创建一个临时的引用类型“box”。 该转换是隐式进行的如上面的例子所述。还可以手工进行转换int i 1;object o i; 而拆箱是显示的int i 20; bject o i;int j (int)o; 在c#2.0之前的版本中考虑如下问题ArrayList集合的Add方法接受的是bject类型如果此时进入的是值类型那么就会进行装箱操作如果从集合中取出数据则还会进行相应的拆箱操作现在观察如果在一个大的循环结构中进行这种操作毋庸置疑的会对性能造成影响因为拆装箱本身就是要损失性能的。下面就分别使用泛型和不使用的情况进行代码分析。事例很简单真实地业务环境会比这个复杂很多再次仅仅表现出性能即可。例子中声明一个arraylist集合首先是将1千万个数字添加到集合中然后再取出来分别进行了装箱和拆箱操作 DateTime tbegin DateTime.Now; ArrayList list new ArrayList(); for (int i 1; i 10000000; i) ...{ //System.Threading.Thread.Sleep(1); list.Add(i); } for (int j 0; j list.Count; j) ...{ int s (int)list[j]; } DateTime tend DateTime.Now; TimeSpan ts tbegin - tend; Console.WriteLine(ts.ToString()); 经过多次运行取平均值大约为3.9秒下面的代码适用泛型技术应用了System.Collections.Generic命名空间下的泛型集合List代码如下 DateTime tbegin DateTime.Now; Listint list new Listint(); // ArrayList list new ArrayList(); for (int i 1; i 10000000; i) ...{ //System.Threading.Thread.Sleep(1); list.Add(i); } for (int j 0; j list.Count; j) ...{ int s (int)list[j]; } DateTime tend DateTime.Now; TimeSpan ts tbegin - tend; Console.WriteLine(ts.ToString());经过多次运行得到一个平均值约为0.583, 可以轻松看出应用泛型和没有应用泛型时间差了近6.7倍。 本文来自CSDN博客转载请标明出处http://blog.csdn.net/chenyuling/articles/1609660.aspx 转载于:https://www.cnblogs.com/ly312/archive/2009/06/25/1511164.html