You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Program.cs中引用并初始化泛型类Classname<T>?

泛型类实例化问题解决

你声明的是泛型类,必须指定符合约束的具体类型参数才能完成实例化,直接写Classname name = new Classname();会报错,因为编译器不知道泛型参数T对应的具体类型。

具体实现步骤:

  • 首先确保存在一个实现了Interface且包含无参构造函数的具体类,比如:
    public class ConcreteClass : Interface
    {
        // 满足new()约束的无参构造函数
        public ConcreteClass() { }
        // 实现Interface中的成员
        // ...
    }
    
  • 在Main方法中,通过指定具体类型参数来实例化泛型类:
    static void Main(string[] args)
    {
        Classname<ConcreteClass> name = new Classname<ConcreteClass>();
    }
    

关键说明:

泛型类的定义中where T : Interface, new()是约束条件,要求T必须实现Interface接口,并且拥有无参构造函数。实例化时必须传入符合该约束的具体类型,编译器才能基于这个类型生成对应的泛型类实例。

内容的提问来源于stack exchange,提问作者awthz Zei

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.21 18:42:40