观《深入理解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()
它检查类型实参是否有一个可用于创建类型实参的无参构造函数(这适用于所有值类型)
四、转换类型约束
有一点要注意,约束类不能是System.ValueType或者密封类或者结构体
五、组合约束
本文作者:陈侠云
本文链接:https://www.cnblogs.com/chenxiayun/p/18294957
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步