如何在泛型C#类中分配值?
public class GeneralWrapper<T>
{
public GeneralWrapper()
{
Datas = new ?
}
public T Datas { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我正在为List对象(任何对象)编写通用的包装类.所以我可以像这样使用这个类
GeneralWrapper<List<string>> _wrapper = new GeneralWrapper<List<string>>();
_wrapper.Datas.Add("hello")
Run Code Online (Sandbox Code Playgroud)
但是Datas需要在构造函数中自动初始化
Datas = new Datas<t>();
Run Code Online (Sandbox Code Playgroud)
看来我在创建GeneralWrapper类之后不必创建新的.
您可以对泛型类型使用约束:
public class GeneralWrapper<T> where T: new()
{
public GeneralWrapper()
{
Datas = new T();
}
public T Datas { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
该new()约束指示T必须是拥有一种默认参数的构造函数类型.这在编译时验证,允许您从泛型类中实例化此对象.
| 归档时间: |
|
| 查看次数: |
536 次 |
| 最近记录: |