У меня есть интерфейс, определяемый как:
public interface MyInterface {
object foo { get; set; };
}
и класс, реализующий этот интерфейс:
public class MyClass : MyInterface {
object foo { get; set; }
}
Затем я создаю функцию, которая возвращает ICollection следующим образом:
public ICollection<MyClass> Classes() {
List<MyClass> value;
List<MyInterface> list = new List<MyInterface>(
new MyInterface[] {
new MyClass {
ID = 1
},
new MyClass {
ID = 1
},
new MyClass {
ID = 1
}
});
value = new List<MyClass>((IEnumerable<MyClass>) list);
return value;
}
Он скомпилировал бы, но выбрал бы
Невозможно запустить объект типа 'System.Collections.Generic.List
1[MyInterface]' to type 'System.Collections.Generic.IEnumerable
1 [МойКласс]'.
исключение. Что я делаю неправильно?