在C#中将类型参数传递给泛型[重复]

Posted

技术标签:

【中文标题】在C#中将类型参数传递给泛型[重复]【英文标题】:Passing Type parameter to generic in C# [duplicate] 【发布时间】:2014-10-04 10:49:28 【问题描述】:

我有一个泛型类ValueCriterion,它采用另一个类类型作为参数。以下代码工作正常。

new ValueCriterion<,CrashDetected>(0));

CrashDetected 是一个类。

但是当我使用下面的代码获取CrashDetected 类的类型时。

Type myType = Type.GetType("NetworkDB." + "CrashDetected");

并将myType 传递给ValueCriterion,编译器给出以下错误:

new ValueCriterion<,myType>(0));

错误 1 ​​使用泛型类型需要 1 个类型参数。

我将非常感谢任何帮助。

【问题讨论】:

【参考方案1】:

您可以使用MakeGenericType 方法使用Type 实例创建泛型类型:

var type = typeof(ValueCriterion<>).MakeGenericType(myType);

var instance = Activator.CreateInstance(type, 0);

【讨论】:

Selman22... 你太棒了。我的问题现在解决了一半。所以我可以创建对象并传递它们。如果我需要将类型作为参数传递呢 Execution.Wait @Tom 你应该得到泛型方法 Wait with Reflection 然后使用 MakeGenericMethod 并传递类型。

以上是关于在C#中将类型参数传递给泛型[重复]的主要内容,如果未能解决你的问题,请参考以下文章

在Python中将多个参数传递给pool.map()函数[重复]

C#将方法作为参数传递给另一个方法[重复]

在 C# 中将查询参数作为参数传递给 BigQuery 中的 IN 运算符的正确方法

如何在 Visual Studio for Mac 中将参数传递给 Main() C#

在python 3中将参数传递给exec

如何在 C# 函数中将 jquery 变量作为参数传递