日期:2014-05-16 浏览次数:21053 次
1.泛型集合:
List<T> Dictionary<K,V> IQueryabl<T>
2.为什么不提倡使用ArrayList的原因?
2.1是因为 ArrayList内部存储数据的是一个 object数组,如果在ArrayList中存储值类型数据,会出现装箱和拆箱,从而影响服务器性能。
2.2类型安全问题:因为ArrayList 中所有元素都以object存储,那么在取出元素使用时,也是作为 object 类型取出,需要做转型;如果不转型,则容易出现类型错误!
3.泛型:就是一个类型占位符
3.2泛型方法
3.2.1自定义泛型方法
在泛型方法中,形参、返回值、方法体内部,都可以使用泛型。
3.2.2IEnumerabl<T>内置泛型方法
a.方法Cast<T>()
b.方法ToList<T>()
c.方法 OfType<T>()
3.3带泛型的类和带泛型的方法的区别:
泛型占位符使用的范围不一样:
泛型方法的泛型占位符只能在方法作用域中使用(形参、返回值、方法体)
带泛型的类:使用范围就是整个类的作用域。
反射
1.程序集是什么:就是源代码编译成 IL后的中间代码文件。
2.当程序执行时,
2.1虚拟机会从硬盘中加载程序集的代码内容,然后按照代码的语法解析,获取信息,并为每个类单独创建一个Type类的对象,用来存储类的信息(成员变量、构造函数、方法............)。
复习反射:
Assembly程序集对象,就相当于将程序集文件内容解析后存放在内存里的位置。
说到底,就是一个程序信息的容器,不能直接作为应用程序运行。如果要把Assembly运行起来,需要使用应用程序域。
1.获取 Type 对象的方式:
1.1 typeof 关键字: Type t1 = typeof(Person);
1.2GetType方法: Type t2 = p1.GetType();//Person p1=new Person();