Дано:
public interface IMyInterface{
}
public class MyClass:IMyInterface{
public MyClass(){}
}
public struct MyStruct:IMyInterface{
private int _myField;
public MyStruct(int myField){_myField = myField;}
}
Почему я могу написать:
IEnumerable<IMyInterface> myClassImps = new[] {
new MyClass(),
new MyClass(),
new MyClass()
};
Но не:
IEnumerable<IMyInterface> myStructImps = new[]{
new MyStruct(0),
new MyStruct(1),
new MyStruct(2)
};
Что дает мне следующее предупреждение:
Ошибка 29 Невозможно неявно преобразовать тип 'MyApp.MyNS.MyStruct []' в 'System.Collections.Generic.IEnumerable < MyApp.MyNS.IMyInterface > '
И вместо этого нужно написать:
IEnumerable<IMyInterface> myStructImps = new IMyInterface[]{
new MyStruct(0),
new MyStruct(1),
new MyStruct(2)
};