我上课了
public class Setting<T>
{
public string name { get; set; }
public T value { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
现在我想创建一个IList<Setting<T>>但是有不同类型Setting<T>的T,我想要eG
List<Setting<T>> settingsList;
settingsList.Add(new Setting<int>());
settingsList.Add(new Setting<string>());
Run Code Online (Sandbox Code Playgroud)
我试过IList<Setting<T>>但这似乎不可能,因为编译器找不到Type T.
我知道我可以使用对象,但我希望它是强类型的.所以我的问题是,是否有可能让这个工作.
Jef*_*ado 10
默认情况下,通用类型在具体定义中没有通用类型或接口.
让您的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" },
};
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5703 次 |
| 最近记录: |