Generic List of Generic Interfaces not allowed, any alternative approaches?

前端 未结 3 828
孤独总比滥情好
孤独总比滥情好 2021-02-03 23:41

I am trying to find the right way to use a Generic List of Generic Interfaces as a variable.

Here is an example. It is probably not the best, but hopefully you will get

3条回答
  •  挽巷
    挽巷 (楼主)
    2021-02-04 00:24

    public interface IPrimitive
    {
    
    }
    
    public interface IPrimitive : IPrimitive
    {
         T Value { get; }
    }
    
    public class Star : IPrimitive //must declare T here
    {
    
    }
    

    Then you should be able to have

    List primitives = new List;
    
    primitives.Add(new Star());   // Assuming Star implements IPrimitive
    primitives.Add(new Sun());    // Assuming Sun implements IPrimitive
    

提交回复
热议问题