47、泛型类型反射、特性及动态编程详解

泛型类型反射、特性及动态编程详解

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 类中,添加了一些方法来确定给定类型是否支持泛型参数和参数。泛型参数是在实例化泛型类时提供的类型参数。可以通过查询 <

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值