gpt4 book ai didi

c# - 无法定义 IList,其中 T 是通用接口(interface)

转载 作者:太空宇宙 更新时间:2023-11-03 17:29:07 25 4
gpt4 key购买 nike

我正在尝试声明和使用这样的接口(interface):

public interface IItem<T>
{
string Name { get; set; }
T Value { get; set; }
}

在我尝试创建这些项目的列表之前,这一切正常。这无法编译:

public interface IThing
{
string Name { get; }
IList<IItem<T>> ThingItems { get; }
}

所以我不确定问题出在哪里。项目值直到运行时才定义,我需要有项目的集合。我认为这是一个相当标准的模式,但我看不出我在哪里倒下了。

最佳答案

你的类也需要是通用的 ( Thing<T> ) 否则列表不知道要使用什么类型。

public interface Thing<T>
{
string Name { get; }
IList<IItem<T>> thingItems { get; }
}

编辑它现在编译。

编辑看来你想要你的 IItem<T>就任何类型而言。这在 C# 中不起作用。您可以在此处创建 IList>,但这并不理想,因为当您想要取出项目时,您会丢失输入。

关于c# - 无法定义 IList<T>,其中 T 是通用接口(interface),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/803302/

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