命名空间:
using System.Collections; class Program
{
//做个比较
static void Main(string[] args)
{
//new对象
Cls a1 = new Cls();
Cls a2 = new Cls(); //存放对象
List<Cls> testfanxing = new List<Cls>();
testfanxing.Add(a1); ArrayList testarray = new ArrayList();
testarray.Add(a2); //取对象
Cls b1 = testfanxing[0];
Cls b2 = testarray[0];//这句报错! 改为:Cls b2 = (Cls)testarray[0];就可正常通过,但是用了类型强制转换 //泛型啥好处?
//1。避免了强制类型转换而造成代码可读性差。
//2。既然有了类型强制转换,问题来了:类型强制转换可能会用到装箱和拆箱过程,耗时。
//3。再由于有强制类型转换,在编译的时候可能不会包错,但是运行代码的时候有可能会因为转换失败而出现错误。这就是我们说的非安全代码。
}
} class Cls
{ } 简单来说,泛型就是限制了操作类型。 用微软的话讲:
“添加到 ArrayList 中的任何引用或值类型都将隐式地向上强制转换为 Object。如果项是值类型,则必须在将其添加到列表中时进行装箱操作,在检索时进行取消装箱操作。强制转换以及装箱和取消装箱操作都会降低性能;在必须对大型集合进行循环访问的情况下,装箱和取消装箱的影响非常明显。”
随机推荐
-
ffmpeg centos6.5上安装(测试 amr 转换为 mp3)
1. 下载相关源码包 wget http://www.tortall.net/projects/yasm/releases/yasm-1.2.0.tar.gz wget http://sourcefo ...
-
BZOJ3189 : [Coci2011]Slika
通过离线将操作建树,即可得到最终存在的操作. 然后逆着操作的顺序,倒着进行染色,对于每行维护一个并查集即可. 时间复杂度$O(n(n+m))$. #include<cstdio> cons ...
-
VS2010: Microsoft.TeamFoundation.PowerTools.CheckinPolicies.ChangesetComments 未注冊
VS2010 缺少Team Foundation Server Power Tools 下载地址: http://visualstudiogallery.msdn.microsoft.com/c255 ...
-
Cocos2d-x文本菜单
文本菜单是菜单项只是显示文本,文本菜单类包括了MenuItemLabel.MenuItemFont和MenuItemAtlasFont.MenuItemLabel是个抽象类,具体使用的时候是使用Men ...
-
#pragma warning (default : n)
参考链接:http://www.cnblogs.com/JCSU/articles/1996483.html 在VC2013中编译以下win32 C++ 控制台程序,会产生2个告警warnings # ...
-
算法导论学习-prim算法
一. 关于最小生成树 对于无向连通图G=(V,E),其中V表示图的顶点,E表示图的边,对于每条边都有一个权值,可以理解为边a->b的权值C为从a走到b要走的路程为C.现在我们希望找到一个无回路的 ...
-
C++ 头文件系列(fstream)
1. 简介 该头文定义了与文件箱关联的流类的4个模版: basic_filebuf basic_ifstream basic_ofstream basic_fstream 和8个类型: filebuf ...
-
spring官方学习地址
1.http://projects.spring.io/spring-framework/ 2.https://github.com/spring-projects/spring-mvc-showca ...
-
ActiveMQ的Destination高级特性
1. Composite Destinations 组合目的地 组合队列Composite Destinations : 允许用一个虚拟的destination代表多个destinations ...
-
linux日常使用指令总结
linux 日常指令总结(ubuntu): ls -lha 所有文件及权限 df -h 系统磁盘空间 du -sh 当前目录大小 du -ah --max-depth=1 显示目录下所有的文件和文件夹 ...