нём предусмотрен обообщённый тип с ограниением в наследовании от IEnumerable.
                  
                  
                  
                  
                  
                  interface IController<T> where T:IEnumerable
                  
                  
                  {
                  
                  
                       int GetCountItems(T collection);
                  
                  
                  }
                  
                  
                  
                  
                  
                   Т.е. при создании класса реализуем его как :
                  
                  
                  
                  
                  
                  ControllerList: IController<List<int>>
                  
                  
                  
                  
                  
                  
                  
                  
                  Как мне использовать этот интерфейс не зная какой тип был передан?
                  
                  
                  
                  
                  
                  Т.е. какое свойство прописать что бы присвоить ему реализованный интерфейс.
                  
                  
                  
                  
                  
                  1. IController<IEnumerable> { get; set; } 
                  
                  
                  // и при присвоении приводиться к   IController<IEnumerable> ?
                  
                  
                  
                  
                  
                  2. Сделать ещё одну прослойку в виде IController без параметризированного типа? И в реализации писать что-то вроде адаптера который реализует интерфейс с параметризированным типом и без?
                  
                  
                  
                  
                  
                  3. Возможен другой вариант?
                  
                  
                
оху чувак спроси лучше у лехи костина))
Обсуждают сегодня