读书笔记 C# Type类型与泛型有关的某些属性浅析
Posted 夜月天
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了读书笔记 C# Type类型与泛型有关的某些属性浅析相关的知识,希望对你有一定的参考价值。
IsGenericType | 如果类型为泛型,则返回 true。 |
GetGenericArguments |
返回 Type 对象数组,这些对象表示为构造类型提供的类型变量,或泛型类型定义的类型参数。 |
GetGenericTypeDefinition |
返回当前构造类型的基础泛型类型定义。 if(defType.IsGenericTypeDefinition) { |
GetGenericParameterConstraints |
如果泛型类型的类型参数T有参数约束,且这些约束参数是自定义的类型(如Person)或其他可以用来实例化对象的类型,不是class、struct等关键字的话,则可用该方法获取这些参数约束的类型。该方法会返回一个Type数组。 //这个返回的Type数组的length为0 |
ContainsGenericParameters |
如果类型或其任意封闭类型或方法包含没有被提供特定类型的类型参数,则返回 true。 //没有提供特定类型参数 |
GenericParameterAttributes | 获取 GenericParameterAttributes 标志的组合,这些标志描述当前泛型类型参数的特殊约束。如class、new()等 |
GenericParameterPosition |
对于表示类型参数的 Type 对象,获取类型参数在声明该类型参数的泛型类型定义或泛型方法定义的类型参数列表中的位置。 |
IsGenericParameter |
获取一个值,该值指示当前 Type 是表示泛型类型定义的类型参数,还是泛型方法定义的类型参数。 |
IsGenericTypeDefinition |
获取一个值,该值指示当前 Type 是否表示可以用来构造其他泛型类型的泛型类型定义。 如果类型表示泛型类型的定义,则返回 true。 |
DeclaringMethod | 返回定义当前泛型类型参数的泛型方法;如果类型参数不是由泛型方法定义的,则返回空值。 |
MakeGenericType | 用类型数组的元素替代当前泛型类型定义的类型参数,并返回表示结果构造类型的 Type 对象。 |
发现一个有趣的现象,如果属性中包含Generic字眼的,多数都是指明Type为typeof的原生泛型类,及Type type=typeof(Stack<>);这种形式,原生的也称为基础的泛型类型可以用来定义特定类型的其他泛型类,即用可以实例化对象的类型将T替换掉。
以上是关于读书笔记 C# Type类型与泛型有关的某些属性浅析的主要内容,如果未能解决你的问题,请参考以下文章