泛型之关键字default、where
①:default
在泛型中,要为某个使用泛型的变量初始化值,可是我们需要考虑的是这个泛型可能是引用类型,也可能是值类型,这时我们可以借助default来完成初始化复制。T value = default(T);如果T是引用类型,value = null,如果是T是值类型,value = 0.
②:where
约束 说明
where T:struct 使用结构约束,类型T必须是值类型
where T:calss 类约束指定,类型T必须是引用类型
where T:IFoo 指定类型T必须执行结构IFoo
where T:Foo 指定类型T必须派生于基类Foo
where T:new() 指定类型T必须有一个默认构造函数
where T:U 类型T派生于泛型类型V(裸类型约束)
(注:在CRL2.0中,只能为默认构造函数定义约束,不能为其他构造函数定义约束)