当我不知道T是什么时,我如何在另一个方法中使用泛型类?

本文关键字:方法 另一个 泛型类 是什么 我不知道 | 更新日期: 2023-09-27 18:02:31

假设我们有这些类:

public class NodeOutput<T> : NodeData
{
    public T Value;
    public NodeOutput(string name, T value)
        : base(name)
    {
        this.Value = value;
    }
}
public class NodeInput<T> : NodeData
{
    public T Value;
    public NodeInput(string name, T value)
        : base(name)
    {
        this.Value = value;
    }
 }

当我不知道T是什么时,我如何在另一个方法中使用这些类?不能编译:

public createConnection(NodeOutput<T> output, NodeInput<T> input)
{
}

但这一个很容易与编译器:虽然我不确定它是什么意思!

public Connection(NodeOutput<Type> output, NodeInput<Type> input)
{
}

在这个函数中T对我来说不重要。我只需要将输出和输入保存在两个变量中

当我不知道T是什么时,我如何在另一个方法中使用泛型类?

您也可以将其他方法声明为泛型:

public void CreateConnection<T>(NodeOutput<T> output, NodeInput<T> input)
{
}

我添加了返回类型void(感谢Dmitry Bychenko指出这一点)。你可以把它改成任何你需要的。

另外,请注意:这是c#,不是Java。命名约定为驼峰大写

Try

public void createConnection<T>(NodeOutput<T> output, NodeInput<T> input)
{
}