反射中的两个方法

typeof(IDictionary).IsAssignableFrom(fieldType);

IDictionary类型的对象可不可以装 fieldType类型的对象

这里的fieldType可以是任意类型

如果可以装就返回true,不能装就返回false。

↓下面是官方文档里的解释

​
Type.IsAssignableFrom(Type) 方法

定义
命名空间:System

程序集:System.Runtime.dll

Source:Type.Helpers.cs

确定指定类型 c 的实例是否能分配给当前类型的变量。


public virtual bool IsAssignableFrom (Type? c);

参数
c

Type    要与当前类型进行比较的类型。

返回    Boolean

如果满足下列任一条件,则为 true:

c 和当前实例表示相同类型。

c 是从当前实例直接或间接派生的。 如果继承于当前实例,则 c 是从当前实例直接派生的;如果继承于从当前实例继承的接连一个或多个类,则 c 是从当前实例间接派生的。

当前实例是实现 的 c 接口。

c 是一个泛型类型参数,并且当前实例表示 c 的约束之一。

c 表示值类型,当前实例表示 Nullable<c> Visual Basic) Nullable(Of c) 中的 (。




如果不满足上述任何一个条件或者 c 为 false,则为 null。

​

fieldType.GetGenericArguments()[0]

Type[]  types=   fieldType.GetGenericArguments();

返回该类型中的泛型类型们,返回的是Type数组

因为像Dictionary就有两个泛型 从左到右,types[0],types[1];

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值