观《深入理解C#》有感---泛型五种约束

一、引用类型约束

class Sample<T> where T : class

类型实参可以是:
任何类:	Sample<string>
接口:	Sample<IDisposable>
数组:	Sample<int[]>
委托:	Sample<Action>

二、值类型约束

class Sample<T> where T : struct

类型实参可以是:
值类型:	Sample<int>
枚举:	Sample<Enum>

三、构造函数类型约束

class Sample<T> where T : new()

它检查类型实参是否有一个可用于创建类型实参的无参构造函数(这适用于所有值类型)

四、转换类型约束
image
有一点要注意,约束类不能是System.ValueType或者密封类或者结构体

五、组合约束
image

posted @ 2024-07-10 20:57  陈侠云  阅读(19)  评论(0)    收藏  举报
//雪花飘落效果