获取泛型类型参数的数量

科夫帕耶夫·阿列克谢(Kovpaev Alexey)

有什么方法可以获取未绑定泛型类型的参数数量?例如:

f(typeof(List<>))        => 1
f(typeof(Dictionary<,>)) => 2

UPD

我知道从Type.Name获取数字,但是也许有一种直接从Type获取的方法

a安

您已经有了通用类型定义。您需要做的就是获取泛型类型参数:

Type.GetGenericArguments().Length

编辑

正如Sebastian指出的那样,如果您习惯使用C#,这可能会给您带来令人惊讶的结果,因为C#隐藏了“继承”的泛型类型参数。例如:

void Main()
{
  typeof(A<>.Nested<>).GetGenericArguments().Dump();
}

public class A<T>
{
  public class Nested<V>
  {

  }
}

会给你的{ typeof(T), typeof(V) }.NET类实际上就是这样-这就是您需要引用它的方式,以及如何通过反射创建它的方式。

仅当您要针对编译时未知的类专门使用C#编译器进行操作时,这才有意义。这可能意味着您正在尝试生成C#代码。似乎没有任何支持的方法可以安全地获得C#的行为-您只需要使用一个真正的代码生成器,而不是将字符串拍打在一起就可以了:)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

获取抽象超类上泛型类型参数的实际类型

来自分类Dev

Java泛型-获取泛型参数的实际类型

来自分类Dev

获取泛型方法以从运行时类型推断出类型参数

来自分类Dev

泛型方法从超类获取参数类型

来自分类Dev

如何从包含泛型参数的Type中获取“基本”类型?

来自分类Dev

如何在扩展方法中获取“ this”参数的泛型类型参数?

来自分类Dev

快速获取泛型的参数化类型?

来自分类Dev

尝试获取泛型类型参数时发生ClassCastException

来自分类Dev

在Java中,可以指定任意数量的泛型类型参数吗?

来自分类Dev

Spring 4泛型类,获取参数化类型

来自分类Dev

从类中获取泛型参数的类型,该类是从泛型接口继承的

来自分类Dev

如何在Kotlin中获取经过修饰的泛型参数的实际类型参数?

来自分类Dev

如何从泛型定义和泛型参数获取泛型类型?

来自分类Dev

在TypeScript中,如何获取具有多个类型参数的方法中的泛型类型参数?

来自分类Dev

填充了类型参数的泛型类型的术语

来自分类Dev

在泛型类型的泛型类上访问类型参数

来自分类Dev

Java泛型-获取泛型参数的实际类型

来自分类Dev

如何在扩展方法中获取“ this”参数的泛型类型参数?

来自分类Dev

泛型类型参数作为参数

来自分类Dev

泛型类型参数隐藏类型

来自分类Dev

从泛型获取ParameterizedType的类型

来自分类Dev

如何从泛型定义和泛型参数获取泛型类型?

来自分类Dev

如何在 IEnumerable<object> 上获取泛型参数的类型?

来自分类Dev

获取泛型类型

来自分类Dev

使用类的实例获取类的泛型类型参数的数量?

来自分类Dev

如何获取泛型方法的每个参数的类型

来自分类Dev

c#获取泛型类中泛型类型参数的名称

来自分类Dev

从参数推断泛型类型

来自分类Dev

从泛型类型中获取属性类型

Related 相关文章

  1. 1

    获取抽象超类上泛型类型参数的实际类型

  2. 2

    Java泛型-获取泛型参数的实际类型

  3. 3

    获取泛型方法以从运行时类型推断出类型参数

  4. 4

    泛型方法从超类获取参数类型

  5. 5

    如何从包含泛型参数的Type中获取“基本”类型?

  6. 6

    如何在扩展方法中获取“ this”参数的泛型类型参数?

  7. 7

    快速获取泛型的参数化类型?

  8. 8

    尝试获取泛型类型参数时发生ClassCastException

  9. 9

    在Java中,可以指定任意数量的泛型类型参数吗?

  10. 10

    Spring 4泛型类,获取参数化类型

  11. 11

    从类中获取泛型参数的类型,该类是从泛型接口继承的

  12. 12

    如何在Kotlin中获取经过修饰的泛型参数的实际类型参数?

  13. 13

    如何从泛型定义和泛型参数获取泛型类型?

  14. 14

    在TypeScript中,如何获取具有多个类型参数的方法中的泛型类型参数?

  15. 15

    填充了类型参数的泛型类型的术语

  16. 16

    在泛型类型的泛型类上访问类型参数

  17. 17

    Java泛型-获取泛型参数的实际类型

  18. 18

    如何在扩展方法中获取“ this”参数的泛型类型参数?

  19. 19

    泛型类型参数作为参数

  20. 20

    泛型类型参数隐藏类型

  21. 21

    从泛型获取ParameterizedType的类型

  22. 22

    如何从泛型定义和泛型参数获取泛型类型?

  23. 23

    如何在 IEnumerable<object> 上获取泛型参数的类型?

  24. 24

    获取泛型类型

  25. 25

    使用类的实例获取类的泛型类型参数的数量?

  26. 26

    如何获取泛型方法的每个参数的类型

  27. 27

    c#获取泛型类中泛型类型参数的名称

  28. 28

    从参数推断泛型类型

  29. 29

    从泛型类型中获取属性类型

热门标签

归档