草庐IT

aBunchOfBananas

全部标签

c# - 为什么 C# 编译器允许在 IEnumerable<T> 和 TAlmostAnything 之间进行显式转换?

如您所料,以下代码会出现编译错误:ListaBunchOfBananas=newList();BananajustOneBanana=(Banana)aBunchOfBananas;但是,当使用IEnumerable时,您只会收到运行时错误。IEnumerableaBunchOfBananas=newList();BananajustOneBanana=(Banana)aBunchOfBananas;为什么C#编译器允许这样做? 最佳答案 我想这是因为IEnumerable是一个接口(interface),其中某些实现可以显式转换为

c# - 为什么 C# 编译器允许在 IEnumerable<T> 和 TAlmostAnything 之间进行显式转换?

如您所料,以下代码会出现编译错误:ListaBunchOfBananas=newList();BananajustOneBanana=(Banana)aBunchOfBananas;但是,当使用IEnumerable时,您只会收到运行时错误。IEnumerableaBunchOfBananas=newList();BananajustOneBanana=(Banana)aBunchOfBananas;为什么C#编译器允许这样做? 最佳答案 我想这是因为IEnumerable是一个接口(interface),其中某些实现可以显式转换为