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/11/3 3:00:58 阅读更多 →
2026低空经济新蓝海:无人机维修技师,比飞手更稀缺的高薪刚需

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

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

2026/11/13 13:56:02 阅读更多 →
从这次SMT贴片加工体验里,我总结出靠谱代工的关键标准

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

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

2026/11/12 17:00:46 阅读更多 →

最新新闻

Electron桌面应用开发实战:从环境搭建到打包发布全流程

Electron桌面应用开发实战:从环境搭建到打包发布全流程

做前端这些年,我大部分时间都在跟浏览器标签页打交道,直到第一次把桌面应用跑起来,才发现原来自己一直被限制在地址栏和刷新按钮围起来的框框里。Electron这个词,最开始是在某段时间频繁出现在同事的讨论里,一个用HTML…

2026/11/14 5:13:29 阅读更多 →
滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

简介:亚太天能T109滑盖智能锁产品说明书是一份PDF格式的官方技术文档,主要面向智能锁安装人员、终端用户及售后维护者,帮助快速掌握产品安装、配置与常见故障处理。全包仅1个PDF文件,大小4.37MB,内容结构清晰&#xff…

2026/11/14 5:13:29 阅读更多 →
PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

上个月我在调试一台高速AGV的驱动系统,整车要求空载跑到8m/s,电机转速已经拉到额定点,驱动器的输出电压也顶到了母线电压极限附近。再往上踩速度指令,转速纹丝不动,三相电流反而开始震荡。那会儿我的第一反应就是&…

2026/11/14 5:13:29 阅读更多 →
C++核心知识点:从内存管理到STL的实战指南

C++核心知识点:从内存管理到STL的实战指南

C 这门语言我前前后后折腾了十几年,用它写过嵌入式驱动、做过游戏服务端,也搭过基础组件库。每次看到新人一头扎进"C 核心知识点"这个搜索词,我其实挺感慨的——这门语言的难点从来不是语法多,而是知识点之间的耦合太深…

2026/11/13 22:08:41 阅读更多 →
T109滑盖智能锁怎么装?安装调试与故障排查全攻略

T109滑盖智能锁怎么装?安装调试与故障排查全攻略

简介:亚太天能T109滑盖智能锁产品说明书以PDF格式发布,适合智能锁用户、安装人员与售后维修人员阅读。内容围绕T109系列指纹密码刷卡锁展开,先介绍前面板、后面板、锁体、机械钥匙、电池盒盖等部件名称与功能,再给出完整安装步骤&…

2026/11/14 2:41:37 阅读更多 →
LLM知识降熵:从信息垄断到理解权下放

LLM知识降熵:从信息垄断到理解权下放

你有没有过这种经历:翻开源码注释、论文摘要或者一份专业报告,每个字都认识,连在一起却像天书。想找人聊聊,身边要么没人懂,要么懂的懒得跟你解释。后来我试着把同一段内容丢给一个大语言模型,几秒钟之后&a…

2026/11/14 5:13:29 阅读更多 →

日新闻

周新闻

月新闻