我需要创建一个Class <t>的对象,但我不知道T我的计划是使用泛型找到T但我不知道如何

时间:2015-07-19 11:38:17

标签: c# generics reflection generic-programming system.reflection

假设我们有一个Could not drop object 'dbo.Bingo_Bonus' because it is referenced by a FOREIGN KEY constraint. 类:

NodeInput

我们有一个public class NodeInput { } public sealed class NodeInput<T> : NodeInput { } 课程如下:

Node

我创建了具体的父类public abstract class Node { public Node() { var fieldInfos = GetType().GetRuntimeFields(); // loop through all NodeInputs using their concrete base type foreach (var item in fieldInfos) { Type t = item.FieldType; if (t.BaseType == typeof(NodeInput)) { // Here I want to initialize each NodeInput field according to // the T but I don't know what the T is here. } } } } ,因此无论NodeInput参数类型如何,我都可以计算所有NodeInput<T>。但我还需要T来创建适当的对象并分配给循环中的每个字段。 对于以下代码中的示例T,当我们创建对象时,应使用PointNode启动所有NodeInput字段:

default(T)

这可能吗?

1 个答案:

答案 0 :(得分:0)

如果我理解你的话,你可以得到这样的节点泛型:

var genericType = item.FieldType.GenericTypeArguments[0];