如果我打电话给那个
var list = new List<Class1>();
Test((IEnumerable<Interface1>)list);
Run Code Online (Sandbox Code Playgroud)
同
public interface Interface1
{
}
public static void Test(IEnumerable<Interface1> test)
{
}
public class Class1 : Interface1
{
}
Run Code Online (Sandbox Code Playgroud)
我得到了一个带有3.5框架的InvalidCastException,但在4和4.5中它没问题.我不明白为什么,都有IEnumerable
如果我检查3.5和4.5中的列表,我看不出为什么我得到InvalidCastException
4.5:
public class List<T> : IList<T>, ICollection<T>,
IEnumerable<T>, IEnumerable, IList, ICollection, IReadOnlyList<T>, IReadOnlyCollection<T>
Run Code Online (Sandbox Code Playgroud)
3.5:
public class List<T> : IList<T>, ICollection<T>,
IEnumerable<T>, IList, ICollection, IEnumerable
Run Code Online (Sandbox Code Playgroud)