gpt4 book ai didi

c# - 将 B 添加到 List>,其中 B 以值类型实现 A

转载 作者:行者123 更新时间:2023-11-30 21:50:36 25 4
gpt4 key购买 nike

给定以下类型和片段:

interface IFoo<out T> {
T doThing();
}

class Bar : IFoo<int> {
int doThing() => 0;
}

var list = new List<IFoo<object>> {
new Bar() //fails to compile
};

我知道无法添加 BarList<IFoo<object>> ,因为 BarT是一个值类型。

鉴于我需要IFoo类型安全,我如何更改 Bar或集合,以便可以同时存储 IFoo<T>对于某些值和引用类型?

最佳答案

基本上我在这里只看到一个选项:

    public interface IFoo<out T>:IFoo
{
T doThing();
}

public interface IFoo
{
object doThing();
}

public class Bar : IFoo<int>
{
public int doThing(){return 0;}
object IFoo.doThing()
{
return doThing();
}
}

var list = new List<IFoo>
{
new Bar()
};

关于c# - 将 B 添加到 List<A<object>>,其中 B 以值类型实现 A,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36229893/

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