代码之家  ›  专栏  ›  技术社区  ›  Francisunoxx

如何引用包含类的通用接口?

  •  -1
  • Francisunoxx  · 技术社区  · 6 年前

    我想生成一个引用接口上任何类的泛型类型参数。但它说在我的 Model Interface . 我可以引用参数类型,它不是任何类,但我需要使用接口内的所有类。任何建议都将不胜感激。:)

    interface IClassModel
    {
        ClassOne MyFirstClass { get; set; }
        ClassTwo MySecondClass { get; set; }
    }
    
    class ClassOne
    {
        public int Num { get; set; }
    }
    
    class ClassTwo
    {
        public int Num { get; set; }
    }
    class Program
    {
        static void ProduceClass<T>() where T : IClassModel, new()
        {
            T value = new T();
            value.MyFirstClass.Num = 1;
        }
    
        static void Main(string[] args)
        {
            ProduceClass<ClassOne>();
        }
    }
    
    1 回复  |  直到 6 年前
        1
  •  2
  •   Access Denied    6 年前

    我想你想这样做:

    interface IClassModel
    {
        int Num { get; set; }
    }
    
    class ClassOne: IClassModel
    {
        public int Num { get; set; }
    }
    
    class ClassTwo: IClassModel
    {
        public int Num { get; set; }
    }
    class Program
    {
        static void ProduceClass<T>() where T : IClassModel, new()
        {
            T value = new T();
            value.Num = 1;
        }
    
        static void Main(string[] args)
        {
            ProduceClass<ClassOne>();
        }
    }