我有课
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
.
我知道我可以使用对象,但我希望它是强类型的。所以我的问题是是否有可能让它发挥作用。
默认情况下,泛型类型在具体定义中没有通用类型或接口。
有你的Setting<T>
类实现一个接口(或从公共类派生)并创建该接口(或类)的列表。
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" },
};
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)