通用接口引用如何接受非通用对象?

问题描述 投票:0回答:1

我有代码

IEnumerable<card> any_object = new card[] { };

其中

card
是一个不实现
IEnumerable
的类。我无法理解这段代码如何工作?

c# .net generics
1个回答
5
投票

来自 C# 规范:

在.NET Framework 2.0版本中,Array类实现了 System.Collections.Generic.IList, System.Collections.Generic.ICollection,以及 System.Collections.Generic.IEnumerable 泛型接口。

所以数组确实(隐式)继承自

IEnumerable<card>

我不太明白关于

card
类未实现
IEnumerable
的评论。
card
类不需要,它是您要为其分配变量的数组,它必须实现接口,而不是其中的值。

© www.soinside.com 2019 - 2024. All rights reserved.