c# - 仅在构造函数中设置类泛型值

标签 c# .net generics

有没有办法只在构造函数中设置类的泛型类型(T),而不是在声明中?

public class Gen<T>
{
}

public class Da
{
}

public class Program
{
    public static Gen<?> gen;

    public static void Main(string[] args)
    {
        gen = new Gen<Da>();
    }
}

最佳答案

如果我正确理解您的要求,实现此目的的最简单方法是使用非通用接口(interface):

interface IGen { }

那么你的泛型类可以是:

class Gen<T> : IGen { }

用法是:

IGen objectGen = new Gen<object>();
IGen intGent = new Gen<int>();

关于c# - 仅在构造函数中设置类泛型值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11329263/

相关文章:

java - 如何限制方法仅接受具有某些限制的参数?

c# - 一种为 Web 请求生成 QueryString 参数的简洁方法

Javascript 在 C# 后面的代码中不警告数据库中的字符串变量值,而是警告整型变量,为什么?

c# - 我在哪里调用 ViewModel 中的模型?

c# - 隐式类型与匿名类型

c# - 如何刷新列表框的数据源

c# - 使用泛型类型的父类(super class)的泛型方法?

c# - 常见 Linq 表达式的示例

c# - 是否可以覆盖 ResolveUrl?

Java 策略泛型作为在构造函数中传递策略的替代方案