传递类型并将其用作类型参数

香波菌属

我为什么不能做这样的事情:

var myDictionary = new Dictionary<string, Type>();

// Add data to dictionary

foreach(var kvPair in myDictionary)
{
    var result = SomeMethod<kvPair.Value>(kvPair.Key); // Error
}

因此,我无法使用在Dictionary元素中拥有的Type并在type参数中使用它。是的,我可以将字典发送到SomeMethod(KeyValuePair)。但是我无法控制该函数的实现方式。

错误:找不到类型或名称空间名称“ kvPair”(您是否缺少using指令或程序集引用?

我感觉好像缺少了一些基础知识,我不确定它是什么。

斯坦利

我感觉好像缺少了一些基础知识,我不确定它是什么。

是的,您缺少通用参数是静态的,而不是动态的。在运行时无法发现它们。您的情况下的一种选择是在运行时使用反射来构建通用方法调用:

foreach(var kvPair in myDictionary)
{
    // use reflection to create generic MethodInfo object
    MethodInfo mi = typeof(this).GetMethod("SomeMethod");
    MethodInfo mig = mi.MakeGenericMethod(kvPair.Value);

    // call generic method
    Object result = mig.Invoke(this, new object[] {kvPair.Key}); 

    // cast to desired return type.
}

但是,在走这条路之前,我先退后一步,看看泛型是否是最好的设计,因为您知道泛型不是最新的。

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

传递类型参数用作参数LabelledGeneric

来自分类Dev

如何遍历类列表并将其用作泛型类型?

来自分类Dev

为类型列表创建别名并将其作为模板参数传递

来自分类Dev

将类型参数用作传递给宏实现的另一个类型的类型参数时,类型错误

来自分类Dev

Asp.Net MVC 5-类型“ bool”必须是引用类型,才能将其用作参数

来自分类Dev

Typescript:如何推断字符串文字参数类型并将其用于其他参数类型

来自分类Dev

将值传递给子组件并将其用作 Angular 中的查询参数

来自分类Dev

通过类型作为构造函数,并将其用作提供程序包的泛型

来自分类Dev

如何在Coq中创建元组并将其用作新的数据类型

来自分类Dev

类型“ MyObject”必须是不可为空的值类型,以便在通用类型或方法“ Nullable <T>”中将其用作参数“ T”

来自分类Dev

如何采用任何构造函数类型并将其转换为接受相同参数的函数类型?

来自分类Dev

如何定义一个通用包装器接口类型并将其用作Java中的方法返回类型?

来自分类Dev

如何将参数传递到bat文件并将其用作可执行文件的参数

来自分类Dev

传递未知类型的参数

来自分类Dev

在类中定义私有结构时,如何将其用作函数参数或返回类型?

来自分类Dev

如何检查函数的参数并将其传递?

来自分类Dev

Java是否允许将类型参数用作类型参数?

来自分类Dev

将类型分配给变量并将其传递给模板

来自分类Dev

打字稿:推断有效载荷类型并将其传递给回调

来自分类Dev

在方法中传递对象类型变量并将其强制转换为 if 语句中的特定类

来自分类Dev

我可以传递enum并将其用作变量吗?

来自分类Dev

如何使用作为参数传递给方法的类类型来定义局部变量

来自分类Dev

如果排除了对象类型,如何删除后面的函数参数并将其向左移动?

来自分类Dev

获取参数并将其用作Javascript中的数组名称

来自分类Dev

如何链接搜索参数并将其用作对象?

来自分类Dev

Bourne Shell构建字符串并将其用作参数

来自分类Dev

将vars设置为ansible并将其用作参数

来自分类Dev

从 nifi 流文件中提取文本并将其用作参数

来自分类Dev

无法解析用作通用类型参数的符号

Related 相关文章

  1. 1

    传递类型参数用作参数LabelledGeneric

  2. 2

    如何遍历类列表并将其用作泛型类型?

  3. 3

    为类型列表创建别名并将其作为模板参数传递

  4. 4

    将类型参数用作传递给宏实现的另一个类型的类型参数时,类型错误

  5. 5

    Asp.Net MVC 5-类型“ bool”必须是引用类型,才能将其用作参数

  6. 6

    Typescript:如何推断字符串文字参数类型并将其用于其他参数类型

  7. 7

    将值传递给子组件并将其用作 Angular 中的查询参数

  8. 8

    通过类型作为构造函数,并将其用作提供程序包的泛型

  9. 9

    如何在Coq中创建元组并将其用作新的数据类型

  10. 10

    类型“ MyObject”必须是不可为空的值类型,以便在通用类型或方法“ Nullable <T>”中将其用作参数“ T”

  11. 11

    如何采用任何构造函数类型并将其转换为接受相同参数的函数类型?

  12. 12

    如何定义一个通用包装器接口类型并将其用作Java中的方法返回类型?

  13. 13

    如何将参数传递到bat文件并将其用作可执行文件的参数

  14. 14

    传递未知类型的参数

  15. 15

    在类中定义私有结构时,如何将其用作函数参数或返回类型?

  16. 16

    如何检查函数的参数并将其传递?

  17. 17

    Java是否允许将类型参数用作类型参数?

  18. 18

    将类型分配给变量并将其传递给模板

  19. 19

    打字稿:推断有效载荷类型并将其传递给回调

  20. 20

    在方法中传递对象类型变量并将其强制转换为 if 语句中的特定类

  21. 21

    我可以传递enum并将其用作变量吗?

  22. 22

    如何使用作为参数传递给方法的类类型来定义局部变量

  23. 23

    如果排除了对象类型,如何删除后面的函数参数并将其向左移动?

  24. 24

    获取参数并将其用作Javascript中的数组名称

  25. 25

    如何链接搜索参数并将其用作对象?

  26. 26

    Bourne Shell构建字符串并将其用作参数

  27. 27

    将vars设置为ansible并将其用作参数

  28. 28

    从 nifi 流文件中提取文本并将其用作参数

  29. 29

    无法解析用作通用类型参数的符号

热门标签

归档