gpt4 book ai didi

c# - 我可以创建一个 List> 吗?

转载 作者:太空狗 更新时间:2023-10-30 00:21:18 24 4
gpt4 key购买 nike

我有课

public class Setting<T>
{
public string name { get; set; }

public T value { get; set; }
}

现在我想创建一个 IList<Setting<T>>但不同类型的 Setting<T>里面有 T,我想要 e.G.

List<Setting<T>> settingsList;
settingsList.Add(new Setting<int>());
settingsList.Add(new Setting<string>());

我试过了 IList<Setting<T>>但这似乎不可能,因为编译器找不到类型 T .

我知道我可以使用对象,但我希望它是强类型的。所以我的问题是是否有可能让它发挥作用。

最佳答案

默认情况下,通用类型在具体定义之间没有通用类型或接口(interface)。

有你的Setting<T>类实现一个接口(interface)(或从公共(public)类派生)并创建该接口(interface)(或类)的列表。

public interface ISetting { }

public class Setting<T> : ISetting
{
// ...
}

// example usage:
IList<ISetting> list = new List<ISetting>
{
new Setting<int> { name = "foo", value = 2 },
new Setting<string> { name = "bar", value "baz" },
};

关于c# - 我可以创建一个 List<Class<T>> 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6242214/

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