gpt4 book ai didi

c# - Container 不是 Container。为什么不?

转载 作者:太空宇宙 更新时间:2023-11-03 19:34:08 24 4
gpt4 key购买 nike

为什么 DoesntWork() 不能在下面工作?错误是:无法将类型“List”隐式转换为“IEnumerable”。存在显式转换(是否缺少强制转换?)。我知道这是关于我没有得到的通用/模板的东西,但是 List 是 IEnumerable 而 Implementer 是一个 IInterface。我不明白为什么需要强制转换(或者如果真的可以)。

public interface IInterface
{
// ...
}

public class Implementer : IInterface
{
// ...
}

IEnumerable<IInterface> DoesntWork()
{
List<Implementer> result = new List<Implementer>();
return result;
}

最佳答案

它与 covariance 有关.这是一个不错的博客 post .如果您不使用 4.0,则必须使用 System.Linq Cast 来转换列表。方法。

关于c# - Container<ImplementerOfIInterface> 不是 Container<IInterface>。为什么不?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3028928/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com