public class ViewModelBaseEx<T> : ViewModelBase where T : class, new()
{
//...........
}
Run Code Online (Sandbox Code Playgroud)
我在一个样本中找到了这样一个类.在这个类中,"T:class,new()"部分的含义是什么.这个方法定义中class,new()的用法是什么.
这意味着,T必须是引用类型(通常为class,interface,delegate或阵列)(但不是struct),它必须有一个公共的无参数构造函数T()(所以这将排除所有的除了前面class).
它是泛型类型约束.
它指定无论T是什么,它必须是引用类型(a class),并且它必须具有公共默认无参数构造函数(new()).
这允许人们这样做:
var x = new T();
Run Code Online (Sandbox Code Playgroud)
没有new()约束,这是不可能的.
| 归档时间: |
|
| 查看次数: |
626 次 |
| 最近记录: |