C#中的泛型
泛型是一种对变量类型的参数化在定义类接口或方法时在名称后用一个泛型占位符来代替想要被指定的变量类型在实际用到的时候就可以自主的来指定该变量类型。泛型类泛型接口与泛型函数中的泛型占位符可以不限定于单个即允许有多个泛型占位符。对于继承了了泛型接口的类需要对于指明泛型接口中写的泛型的变量类型。泛型方法中的泛型可以作为参数传入可以作为内部逻辑处理可以作为返回值但要注意对于后两者的处理由于我们在初始声明时无法得知具体的变量类型所以尽量使用变量的默认型default来参与。对于泛型类中的泛型方法内部泛型方法指定的泛型字符不能与外部泛型类指定的泛型字符重复。利用泛型可以处理不同类型对象的相同逻辑处理也可以在一定程度上优化装箱拆箱的内存占用。using System; namespace lesson05 { //泛型类 class TestClassT,K { public T value; public K key; } //泛型接口 interface TestInterFaceM, LL { M Value { get; set; } LL Key { get; set; } } //普通类继承泛型接口时要指定泛型的变量类型 class Test : TestInterFacestring, float { public string Value { get; set; } public float Key { get; set; } } //普通类中的泛型方法 class Test2 { //泛型作为参数传递 public void TestFunT, K(T val, K ke) { Console.WriteLine(第一个泛型参数 val 第二个泛型参数 ke); } //泛型作为内部逻辑处理 public void TestFunT() { T t default;//不论泛型后续被指定为什么变量类型均为默认类型 Console.WriteLine(t); } //泛型作为返回值(确保默认) public T TestFunT(string s) { return default(T); } } //泛型类中的泛型方法 class Test2T { public T value; //泛型类中的泛型方法与泛型类指定的占位符不能相同 public void TestFunK(K k) { Console.WriteLine(${k}); } } //利用泛型优化数组指定所装元素的具体类型避免了装箱拆箱 class ArrayListT { private T[] array; public void Add(T value) {} public void Remove(T value) {} } class Program { static void Main(string[] args) { //实例化泛型类的对象时要指定泛型的变量类型 TestClassint,string t new TestClassint, string(); t.value 10; t.key eee; Console.WriteLine(t.value); Console.WriteLine(***************************); TestClassString,bool t2 new TestClassString, bool(); t2.value abc; t2.key true; Console.WriteLine(t2.value); Test2 tt new Test2(); Console.WriteLine(***************************); //调用普通类中的泛型方法时要指定泛型的变量类型 tt.TestFunstring, float(abcdefg, 3.1f); tt.TestFunbool(); Console.WriteLine(***************************); Test2int tt2 new Test2int(); tt2.TestFunfloat(6.5f); /*当泛型类的泛型与其内部泛型方法的泛型指定了相同的变量类型时 优先调用泛型方法指定的变量类型 */ tt2.TestFunint(3); /* 泛型类内以泛型作为参数的泛型方法的调用时 允许不写出泛型类型而根据括号内的参数类型自动判断 */ tt2.TestFun(yuio); tt2.TestFun(4); } } }

相关新闻

计算机毕业设计之lasso+L1的能源行业电量预测

计算机毕业设计之lasso+L1的能源行业电量预测

Lasso_L1,即Lasso回归方法,在能源行业的电量预测中被广泛应用。Lasso回归通过在目标函数中加入L1正则化项,对回归系数施加稀疏性约束,使得模型中的大部分系数趋于零,从而实现特征选择的效果。在电量预测中,…

2026/7/22 19:10:52 阅读更多 →
2026低空经济新蓝海:无人机维修技师,比飞手更稀缺的高薪刚需

2026低空经济新蓝海:无人机维修技师,比飞手更稀缺的高薪刚需

摘要:本文揭示了低空经济中一个被忽视的黄金赛道——无人机维修。面对飞手岗位饱和、竞争激烈的现状,无人机装调检修工正面临巨大人才缺口,供需比高达40:1。文章深入分析了维修岗位的长期刚需性、官方证书的政策含金量、清晰的薪资梯度以及适…

2026/7/22 19:10:52 阅读更多 →
从这次SMT贴片加工体验里,我总结出靠谱代工的关键标准

从这次SMT贴片加工体验里,我总结出靠谱代工的关键标准

小批量也能有高良率?听听这些被SMT代工“坑”过的人怎么说 在电子制造领域,SMT贴片看似是标准化流程,实则暗藏玄机。不少中小客户都经历过这样的窘境:报价诱人,交货后却发现空焊、偏移频发;沟通时承诺“全程…

2026/7/22 19:10:52 阅读更多 →

最新新闻

深入解析EDMA3:事件队列、传输优化与实时系统调试实战

深入解析EDMA3:事件队列、传输优化与实时系统调试实战

1. 项目概述与EDMA3核心价值在嵌入式系统开发,尤其是对实时性要求苛刻的领域,如音视频处理、通信基带或高速数据采集,CPU的时间是极其宝贵的资源。如果让CPU亲自去搬运每一字节的数据,就好比让一位总工程师去流水线上亲自拧螺丝&a…

2026/7/22 19:49:15 阅读更多 →
深入解析TI EDMA3核心寄存器:队列管理、内存保护与事件控制

深入解析TI EDMA3核心寄存器:队列管理、内存保护与事件控制

1. 项目概述与核心价值在嵌入式系统开发,尤其是基于德州仪器(TI)多核DSP或SoC(如C6000系列)的项目中,高效的数据搬运是决定系统整体性能的命脉。CPU如果深陷于大量、重复的原始数据拷贝任务,其宝…

2026/7/22 19:49:15 阅读更多 →
深入解析EDMA3高级机制:资源管理、中断与内存保护实战

深入解析EDMA3高级机制:资源管理、中断与内存保护实战

1. 项目概述:为什么需要深入理解EDMA3的“软”机制?在嵌入式系统开发,尤其是基于TI C6000系列DSP或异构多核SoC的项目中,EDMA3(Enhanced Direct Memory Access 3)控制器是数据搬运的绝对核心。很多工程师初…

2026/7/22 19:48:15 阅读更多 →
Java中数组的介绍与实战

Java中数组的介绍与实战

目录 1.初识数组 2.数组的简单应用 1】求和 2】取最小值、最大值 3】求平均值 3.数组的进阶实战 注册登录1.0: 模拟计算器: 1.初识数组 数组是最基础、最底层的线性数据结构,其可以存储多个同类型的数据、变量。(数据结构是数…

2026/7/22 19:48:15 阅读更多 →
分享一套锋哥原创的基于PyTorch的动物图像识别系统(深度学习+PyQt6+ResNet18+ImageNet+迁移学习)

分享一套锋哥原创的基于PyTorch的动物图像识别系统(深度学习+PyQt6+ResNet18+ImageNet+迁移学习)

大家好,我是Java1234_小锋老师,分享一套锋哥原创的基于PyTorch的动物图像识别系统(深度学习PyQt6ResNet18ImageNet迁移学习) 项目介绍 随着深度学习技术的快速发展,计算机视觉在目标分类、目标检测和图像理解等领域取得了显著进展。动物图像…

2026/7/22 19:47:14 阅读更多 →
嵌入式EMIF接口实战:SDRAM与异步存储器配置与调试全解析

嵌入式EMIF接口实战:SDRAM与异步存储器配置与调试全解析

1. 项目概述在嵌入式系统开发中,处理器与外部存储器的“对话”效率,直接决定了整个系统的性能上限。无论是需要高速数据吞吐的SDRAM,还是用于存储启动代码的NOR Flash,它们与CPU之间的桥梁——外部存储器接口(EMIF&…

2026/7/22 19:47:14 阅读更多 →

日新闻

TI DSP系统配置模块SYSCFG详解:中断机制与主设备优先级配置实战

TI DSP系统配置模块SYSCFG详解:中断机制与主设备优先级配置实战

1. 项目概述与SYSCFG模块的核心价值在嵌入式系统,尤其是像TI C6000系列这样的高性能DSP开发中,我们常常会与芯片手册里那些密密麻麻的寄存器打交道。很多开发者可能更关注算法实现、内存优化或者外设驱动,但对于一个稳定、高效的系统而言&…

2026/7/22 0:00:26 阅读更多 →
微信Server酱:高到达率的应急通知方案实践

微信Server酱:高到达率的应急通知方案实践

1. 为什么我们需要"最次"的通知方案? 在数字化协作环境中,消息通知系统的重要性不言而喻明。但现实情况是,企业级通知方案往往需要复杂的API对接(如企业微信、钉钉、飞书),个人开发者的小项目又经…

2026/7/22 0:00:26 阅读更多 →
甲方要的“简洁“PPT,到底是简洁还是省事?

甲方要的“简洁“PPT,到底是简洁还是省事?

甲方说"简洁一点",乙方听到的是"少做几页"。甲方说"不要太复杂",乙方理解成"别放图表了"。结果交过去,甲方说"我说的简洁不是这个意思"。"简洁"这个词在PPT语境里,是…

2026/7/22 0:00:26 阅读更多 →

周新闻

Go语言静态资源打包方案对比与实践指南

Go语言静态资源打包方案对比与实践指南

1. 项目背景与核心需求在Go语言开发中,我们经常需要处理静态资源文件的打包问题。无论是Web应用的模板文件、前端资源,还是配置文件、证书等,都需要随程序一起分发。传统做法是将这些文件与编译后的二进制文件放在同一目录下,但这…

2026/7/22 8:58:19 阅读更多 →
Go语言实现高性能LDAP认证服务的架构与实践

Go语言实现高性能LDAP认证服务的架构与实践

1. 项目背景与核心价值LDAP(轻量级目录访问协议)作为企业级身份认证的黄金标准,已经服务了超过80%的财富500强公司。我在金融科技领域实施统一认证体系时,发现传统Java方案存在启动慢、内存占用高等痛点。而Go语言凭借其协程并发模…

2026/7/22 19:43:43 阅读更多 →
【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

更多请点击: https://intelliparadigm.com 第一章:AI面试官实战指南的核心价值与适用场景 AI面试官并非替代人类HR的“黑箱工具”,而是以可解释、可审计、可迭代的方式,赋能招聘全链路的关键基础设施。其核心价值在于将主观经验沉…

2026/7/22 12:54:44 阅读更多 →

月新闻