泛型类型反射、特性及动态编程详解
1. 泛型类型反射
在2.0框架中,不仅可以对非泛型类型进行反射,还能对泛型类型进行反射。运行时对泛型的反射可确定类或方法是否包含泛型类型,以及可能包含的类型参数或参数。
1.1 确定类型参数的类型
可以像使用 typeof 运算符获取非泛型类型的 System.Type 实例一样,在泛型类型或泛型方法的类型参数上使用 typeof 运算符。以下是在 Stack 类的 Add 方法中对类型参数应用 typeof 运算符的示例:
public class Stack<T>
{
...
public void Add(T i)
{
...
Type t = typeof(T);
...
}
...
}
获取类型参数的 Type 对象实例后,就可以对类型参数本身进行反射,以确定其行为,并更有效地调整 Add 方法以适应特定类型。
1.2 判断类或方法是否支持泛型
在CLI 2.0的 System.Type 类中,添加了一些方法来确定给定类型是否支持泛型参数和参数。泛型参数是在实例化泛型类时提供的类型参数。可以通过查询 <
超级会员免费看
订阅专栏 解锁全文
174

被折叠的 条评论
为什么被折叠?



