如何在泛型 C# 类中赋值?
public class GeneralWrapper<T>
{
public GeneralWrapper()
{
Datas = new ?
}
public T Datas { get; set; }
}
我正在为 List 对象(任何对象)编写通用包装类。所以我可以像这样使用这个类
GeneralWrapper<List<string>> _wrapper = new GeneralWrapper<List<string>>();
_wrapper.Datas.Add("hello")
但是数据需要在构造函数中自动初始化
Datas = new Datas<t>();
看来我不必在创建 GeneralWrapper 类后创建新的。
最佳答案
你可以使用 constraint在你的通用类型上:
public class GeneralWrapper<T> where T: new()
{
public GeneralWrapper()
{
Datas = new T();
}
public T Datas { get; set; }
}
new()
约束表明T
必须是具有默认的无参数构造函数的类型。这在编译时得到验证,并允许您从通用类中实例化此对象。
关于c# - 如何在泛型类型的构造函数中分配泛型类型的成员?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9344076/