【发布时间】:2011-05-16 15:37:54
【问题描述】:
我有一个接口定义为:
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.IEnumerable1[MyClass]'。
异常。我做错了什么?
【问题讨论】: