日期:2014-05-17  浏览次数:20946 次

今天面试问C#中的泛型反射以及适用场景,之前没用过解答不出来,求帮助解答啊
求帮助解答C#中的泛型反射以及适用场景,面试时没答上来,感觉被鄙视了
反射 泛型 面试

------解决方案--------------------
本帖最后由 caozhy 于 2013-10-30 22:29:57 编辑
反射的用途是运行时的类型识别、对象的动态创建、调用未知类型中的方法、属性等。

比如说你创建了一个控件,Visual Studio如何知道如何在设计器中创建它,以及在代码编辑器中给你列出成员、方法的提示列表,在属性表中列出属性,这个就是靠反射实现的。

ASP.NET根据用户发来的请求找到对应的Page类,调用你写的方法,这也需要反射。


至于泛型,允许你编写通用的算法和数据结构来适应不同的类型。比如List<T>,提供了抽象的列表结构,但是具体元素的类型则留给调用者定义。再比如Sort<T>() where T : ICompareable,提供了通用的排序算法,只要我们能够确定T的相对大小比较(T在数学上说满足偏序的关系),我们就可以构造一个通用的排序算法。

泛型类型 + 泛型类型参数 = 一个完整的类型。
------解决方案--------------------
invoke反射 多线程各种用啊...


泛型,为了避免写重复的代码 比如同一个接口,你需要传入不同类型进去,就得用泛型了,同时也给数据类型加了限制