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

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

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

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

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

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

2026/10/17 4:29:01 阅读更多 →

最新新闻

基于协同过滤的个性化电影推荐研究

基于协同过滤的个性化电影推荐研究

前言今天所阅读的这一个人, 是《电脑知识与技术》这本期刊在2019年的9月份所发表的一篇文章。这篇文章的标题叫做《基于的协同过滤算法的研究与应用实现》, 文章内容是关于协同过滤算法的一个研究与实际应用的呈现。摘要随着科学技术快速地发展, 并且知识产权变得日益重要, 绝大…

2026/10/18 6:33:52 阅读更多 →
Rust重写文字处理内核,开放AI可调用的文档处理库wordcraft实践

Rust重写文字处理内核,开放AI可调用的文档处理库wordcraft实践

最近在 GitHub 上看到一个很有意思的项目,叫 wordcraft,一句话概括就是:用 Rust 重写了一套兼容主流文档格式的文字处理内核,并且把编辑能力以库和接口的形式开放出来,让 AI Agent 可以直接调用。这个方向的想象力很大…

2026/10/18 6:33:52 阅读更多 →
Claude Code权限配置实战:用启动参数与规则告别确认弹窗,实现批量重构自动化

Claude Code权限配置实战:用启动参数与规则告别确认弹窗,实现批量重构自动化

用 Claude Code 做批量重构之前,我以为最大的成本是模型“理不理解需求”。真正上手之后才发现,成本是终端里一个接一个的确认弹窗:改一个文件弹一次,跑一条命令再弹一次,有时候同一个操作还会被拆成两次确认。本来是几…

2026/10/18 6:33:52 阅读更多 →
OpenClaw龙虾养殖指南精读:参数化养殖与水质管理实操

OpenClaw龙虾养殖指南精读:参数化养殖与水质管理实操

简介:面向AI从业者、开发者和普通用户的OpenClaw入门指南,以2026年初爆火的开源自主智能体项目为对象,系统讲解其产品定位、出圈原因、整体架构、Agent调度层、通讯层、记忆系统、技能工具链与运行流程,并覆盖国内平替、安全挑战和…

2026/10/18 6:33:52 阅读更多 →
Python 如何统一处理不同复权方式的 K 线?从 Pandas 数据处理到 QuantDash API 实战

Python 如何统一处理不同复权方式的 K 线?从 Pandas 数据处理到 QuantDash API 实战

一句话结论: 统一处理不同复权方式的 K 线,关键不是简单地把多个 DataFrame 拼在一起,而是明确价格口径、统一数据结构,并确保指标计算和回测使用的价格序列具有一致的复权规则。 摘要 在 Python 量化开发中,同一只股…

2026/10/18 6:33:52 阅读更多 →
跨境电商前端HTML模板:多语言多币种可落地骨架

跨境电商前端HTML模板:多语言多币种可落地骨架

简介:这是一套面向前端初学者与电商项目开发者的跨境电商网站前端模板代码,基于HTMLCSSJS构建,可快速搭建具备商品展示、购物车、响应式布局等基础功能的电商页面。资源共188个文件,包含26个结构清晰的HTML页面、7个核心CSS样式表…

2026/10/18 6:32:52 阅读更多 →

日新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/18 0:00:55 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/18 0:00:55 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/18 0:00:55 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/18 0:00:55 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/18 0:00:55 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/18 0:00:55 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/18 0:55:02 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/17 17:22:31 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/16 14:23:36 阅读更多 →