当IMyInterface
的实现是一个结构时,有人可以解释为什么下面的转换会失败吗?我不明白为什么运行时关心类和结构之间的区别,因为List总是一个类。
public interface IMyInterface
{
}
public class MyClass : IMyInterface
{
}
public struct MyStruct : IMyInterface
{
}
public static void TestCast<T>()
where T : IMyInterface
{
var works = (IEnumerable<IMyInterface>)new List<MyClass>();
var invalidCastException = (IEnumerable<IMyInterface>)new List<MyStruct>();
}