当前位置: 首页 > news >正文

C# Unity 面向对象补全计划 泛型约束

本文仅作学习笔记与交流,不作任何商业用途,作者能力有限,如有不足还请斧正

1.泛型约束了什么 

在C#中,泛型约束用于限制泛型类型参数的类型

可以在泛型类型或方法的声明中使用 where 关键字来指定这些约束 

2.约束栗子

基类约束:

public class Repository<T> where T : Entity
{// T 必须是 Entity 的子类
}

接口约束:

public class Logger<T> where T : ILogger
{// T 必须实现 ILogger 接口
}

构造函数约束

public class Factory<T> where T : new()
{public T CreateInstance(){return new T();}
}

 多约束

public class Manager<T> where T : Employee, IManager, new()
{// T 必须是 Employee 的子类,必须实现 IManager 接口,并且必须有一个无参数的构造函数
}

方法约束 

public void Process<T>(T item) where T : IProcessable
{item.Process();
}

相关文章:

  • 代码随想录算法训练营第三十九天 | 322. 零钱兑换、279.完全平方数、139.单词拆分、多重背包理论基础、背包问题总结
  • 到底是低度还是高度的白酒对身体的伤害更大?
  • Linux网络编程3
  • 20240807 每日AI必读资讯
  • UNI-APP_点击,长按,触摸,结束触摸事件
  • 【C/C++笔记】:易错难点3 (二叉树)
  • Redis哨兵集群部署 一主两从三哨兵以及持久化
  • 动态规划之——背包DP(进阶篇)
  • 网络原理(2)——封装和分用
  • 鸿蒙图形开发【3D引擎接口示例】
  • 数据结构——排序(1):插入排序
  • 递归深度问题和尾调用的关系
  • Linux中多线程压缩软件 | Mingz
  • jupyter下载
  • 软件RAID配置实战(2个案例场景)
  • 收藏网友的 源程序下载网
  • 【Under-the-hood-ReactJS-Part0】React源码解读
  • Date型的使用
  • Python进阶细节
  • seaborn 安装成功 + ImportError: DLL load failed: 找不到指定的模块 问题解决
  • VuePress 静态网站生成
  • 笨办法学C 练习34:动态数组
  • 基于HAProxy的高性能缓存服务器nuster
  • 基于游标的分页接口实现
  • 嵌入式文件系统
  • 小李飞刀:SQL题目刷起来!
  • 学习JavaScript数据结构与算法 — 树
  • AI算硅基生命吗,为什么?
  • ‌分布式计算技术与复杂算法优化:‌现代数据处理的基石
  • #pragma pack(1)
  • #我与Java虚拟机的故事#连载01:人在JVM,身不由己
  • $.each()与$(selector).each()
  • $forceUpdate()函数
  • (1)Nginx简介和安装教程
  • (9)STL算法之逆转旋转
  • (delphi11最新学习资料) Object Pascal 学习笔记---第13章第1节 (全局数据、栈和堆)
  • (delphi11最新学习资料) Object Pascal 学习笔记---第5章第5节(delphi中的指针)
  • (iPhone/iPad开发)在UIWebView中自定义菜单栏
  • (pytorch进阶之路)扩散概率模型
  • (STM32笔记)九、RCC时钟树与时钟 第一部分
  • (安全基本功)磁盘MBR,分区表,活动分区,引导扇区。。。详解与区别
  • (保姆级教程)Mysql中索引、触发器、存储过程、存储函数的概念、作用,以及如何使用索引、存储过程,代码操作演示
  • (翻译)Quartz官方教程——第一课:Quartz入门
  • (计算机网络)物理层
  • (精确度,召回率,真阳性,假阳性)ACC、敏感性、特异性等 ROC指标
  • (蓝桥杯每日一题)平方末尾及补充(常用的字符串函数功能)
  • (南京观海微电子)——I3C协议介绍
  • (亲测有效)推荐2024最新的免费漫画软件app,无广告,聚合全网资源!
  • (数位dp) 算法竞赛入门到进阶 书本题集
  • (一)kafka实战——kafka源码编译启动
  • (原創) 如何刪除Windows Live Writer留在本機的文章? (Web) (Windows Live Writer)
  • .NET Core WebAPI中使用swagger版本控制,添加注释
  • .net core 依赖注入的基本用发
  • .NET MVC之AOP
  • .net MySql