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

标签 c# generics generic-programming

假设我们有这些类:

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 对我来说并不重要。我只需要将输出和输入保存在两个变量中。

最佳答案

您也可以将其他方法声明为通用方法:

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

}

我添加了一个返回类型 void(感谢 Dmitry Bychenko 指出这一点)。您可以将其更改为您需要的任何内容。

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

关于c# - 当我不知道 T 是什么时,如何在另一种方法中使用泛型类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31387610/

相关文章:

c# - 从另一个项目访问 resx 资源文件

c# - 序列化专业列表<>

rust - 处理 f64 或 Complex64 返回类型。泛型?任何一个?

c# - 如何检测音频设备何时插入和拔出?

c# - 是否可以在 C# 中使用 iTextSharp 修改 PDF 中的专色名称?

c# - 在网站上上传csv文件并获得结果

c++ - 如何保证一个类扩展了 C++ 中的实现?

c# - 使用通用参数的 Azure Service Fabric 远程处理

c# - 限制在 C# 中使用泛型创建子表单

c - 我们如何使用可变变量作为开关盒标签