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

news/2024/11/17 5:38:31/文章来源:https://www.cnblogs.com/chenxiayun/p/18294957

一、引用类型约束

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/741914.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2024/7/10 笔记

CF1693F对0,1个数相等的0,1串进行排序一定是最优的贪心策略。 我们把0记为1,1记为-1.求前缀和如果1的个数大于0的个数,那么就把整个串翻转然后取反,推一下就可以知道结果不会变。CF1646F这题我写了半天发现假了; 一开始看了样例很容易想到,每个人每轮都把自己不需要的牌往…

G65 线性基+贪心法 P4570 [BJWC2011] 元素

视频链接: P4570 [BJWC2011] 元素 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)// 线性基 O(60*n) #include <iostream> #include <cstring> #include <algorithm> using namespace std;#define LL long long const LL N=1005; int n,m; struct node{LL …

一套基于 Ant Design 和 Blazor 的开源企业级组件库

前言 今天大姚给大家分享一套基于Ant Design和Blazor的开源(MIT License)、免费的企业级组件库(喜欢Ant Design风格的同学推荐使用):Ant Design Blazor。项目特性提炼自企业级中后台产品的交互语言和视觉风格。 开箱即用的高质量 Blazor 组件,可在多种托管方式共享。 支持…

Linux-shell编程入门基础

本篇文章就是一个过渡学习的,先入门shell脚本,由于作者有编程基础,所以有些解释的比较少。由于现在还在努力学习中,以后等本散修进阶了之后再写进阶的、与网络安全更加贴合的shell编程目录前言Shell编程bash特性shell作用域变量环境变量$特殊变量$特殊状态变量$特殊符号(很…

HashMap和ConcurrentHashMap的底层实现原理

(1)HashMap底层实现原理 在 JDK 1.7 版本之前, HashMap 数据结构是数组和链表,HashMap 通过哈希算法将元素的键 (Key) 映射到数组中的槽位 (Bucket)。如果多个键映射到同一个槽位,它们会以链表的形式存储在同一个槽位上,因为链表的查询时间是 O(n),所以冲突很严重,一个…

【Azure Key Vault】关于Key Vault使用的几个问题

问题一:Key Vault 和 Event Grid 通过将 Key Vault 与事件网格集成,可以在密钥保管库中存储的机密的状态发生更改时收到通知。 状态更改将定义为即将到期的机密(到期前 30 天)、已过期的机密或具有可用新版本的机密。 支持所有三种机密类型(密钥、证书和机密)的通知。无法…

利用Selenium和PhantomJS绕过接口加密的技术探索与实践

本文介绍了如何利用Selenium结合PhantomJS绕过网站接口加密的方法,详细分析了实现过程中的关键步骤和技术挑战。此外,文章还包括一个具体案例:使用该技术爬取振坤行商品信息的实例,展示了该技术在实际网络数据采集中的应用和效果。selenium+phantomjs绕过接口加密 我们为什…

Profinet转ModbusTCP网关模块连发那科机器人与DCS通讯

本文介绍了使用巴图自动化Profinet转ModbusTCP网关(BT-ETHPN20)配置通讯,实现DCS与发那科机器人间数据传递的步骤。巴图自动化Modbus转Profinet网关模块(BT-MDPN10)集成了Modbus协议和Profinet协议,具有将Modbus和Profinet协议互转的能力,且支持Modbus RTU主从站。Profine…

动手学Avalonia:基于硅基流动构建一个文生图应用(一)

本文为动手学Avalonia:基于硅基流动构建一个文生图应用系列(一)。文生图 文生图,全称“文字生成图像”(Text-to-Image),是一种AI技术,能够根据给定的文本描述生成相应的图像。这种技术利用深度学习模型,如生成对抗网络(GANs)或变换器(Transformers),来理解和解析…

APP抓包神器drony

APP抓包神器drony 当你想抓app的包,但是charles却很多包没有,甚至很多请求都是unknown,这个时候用Drony就很好用了,将charles打开,用drony来转发app的所有请求,而不是直接设置手机wifi代理。 1:安装drony (这里手机使用的Android设备)您可以在网络上搜索drony选择自己…

主成分分析及其matlab实现

本讲将介绍主成分分析(Principal Component Analysis,PCA),它能将多个指标转换为少数几个主成分,这些主成分是原始变量的线性组合,且彼此之间互不相关。一般来说,当研究的问题涉及到多变量且变量之间存在很强的相关性时,我们可考虑使用主成分分析的方法来对数据进行简化。…

关于ComfyUI的一些Tips

关于ComfyUI的一些Tips 前言: 最近发的ComfyUI相关文章节奏不知道会不会很快,在创作的时候没有考虑很多,想着把自己的知识分享出去。后台也看到很多私信,有各种各样的问题,这是我欠缺考虑了,今天这篇文章呢,根据私信的问题我大致整理了一下,给大家一些小tips。 目录 一…