C# —— 泛型

泛型: 广泛的类型 一般用于传递类型的
泛型的命名规范:以T开头的单词命名,

<> 中间类型就是传入泛型
<int> 整形的泛型 
<T> 泛型类型

List<string> list = new List<string>();
Dictionary<int, int> dic = new Dictionary<int, int>();
Dictionary<string, string> dic1 = new Dictionary<string, string>();

 泛型使用在方法定义上,
调用泛型方法 通过<>将类型的实参进行传递,
对应的位置泛型形参就是这个类型

 Test<int>(1);// T 传递的是int类型 此次参数必须是int类型Test<string>("a");// T传递的string 此次参数必须是字符串类型// Test(1); 泛型方法调用时候简化写法 系统自动推断类型// Test("a"); 

 2 调用带两个泛型参数的方法 Test1 传递的类型是一个

Test1<int>(10, new int[] { 10 });

3 调用Test2方法 传入两个泛型类型 参数个数是2个

Test2<int, string>(10, "a");
Test2<int, int>(10, 10);

重点: 泛型方法调用的时候 由传入的类型坚定着实参的类型,实参类型决定着形参的类型,所以形参作用就进而体现了,参数类型不固定 由方法调用决定

例子 封装一个泛型方法 有返回值 泛型数组 ,参数传递一个任意类型的数据和数字 转化为对应长度的数组,并且数组里面存储的是传递的类型
            Test4(10,20)整形数组  Test4("a",20)字符串数组 

int[] aa = Test3<int>(10, 10);
string[] ab = Test3<string>("a", 10);
Console.WriteLine(string.Join(",",aa));
Console.WriteLine(string.Join(",", aa));

1 泛型方法 可以传入整形的数字,也可以传入字符串 也可以传入数组
        // 定义方式: 方法名字后面添加<T> 方法参数类型改为T

public static void Test<T>(T a)
{Console.WriteLine(a);
}

2 定义带两个泛型参数的反省方法
        // 泛型数组: 数组可以传递整形数组 也可以是字符串数组 T[] array

public static void Test1<T>(T a, T[] array)
{Console.WriteLine(a + ","+ array[0]);
}

3 定义泛型方法 传递两个泛型参数,两个参数类型不一样 可以使用 Ta 以后可以 T1... 以后可以 T1...T2...T3

 public static void Test2<T,T1>(T a,T1 b){}

4 对应的调用

public static T[] Test3<T>(T a,int count)
{T[] r = new T[count];// 长度为第二个参数for (int i = 0; i < count; i++){r[i] = a;// 所有的元素都是a}return r;
}

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

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

相关文章

人工智能 (AI) 应用:一个异常肺呼吸声辅助诊断系统

关键词&#xff1a;深度学习、肺癌、多标签、轻量级模型设计、异常肺音、音频分类 近年来&#xff0c;流感对人类的危害不断增加&#xff0c;COVID-19疾病的迅速传播加剧了这一问题&#xff0c;导致大多数患者因呼吸系统异常而死亡。在这次流行病爆发之前&#xff0c;呼吸系统…

SCI一区级 | Matlab实现GJO-CNN-LSTM-Multihead-Attention多变量时间序列预测

SCI一区级 | Matlab实现GJO-CNN-LSTM-Mutilhead-Attention多变量时间序列预测 目录 SCI一区级 | Matlab实现GJO-CNN-LSTM-Mutilhead-Attention多变量时间序列预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 1.Matlab实现GJO-CNN-LSTM-Mutilhead-Attention金豺优化算…

Android 自定义Drawable实现跑马灯效果

这个跑马灯效果比自定义VIew实现丝滑&#xff0c;丝滑效果主要还是对颜色的取值比较关键 public class FluidColorfulFrameDrawable extends Drawable {private Paint paint;private RectF bounds;private RectF rectF new RectF();private float defaultRadius SizeUtils.d…

redhat基础的环境搭建

1:利用RUFUS进行U盘启动制作&#xff08;Rufus - 轻松创建 USB 启动盘&#xff09; 2&#xff1a;下载nvidia驱动后安装出现&#xff08;redhat安装驱动会有几个坑&#xff0c;可以参考这个CentOS 7.6安装 NVIDIA 独立显卡驱动&#xff08;完整版&#xff09;_centos 7.6 64位…

MongoDB自学笔记(三)

一、前文回顾 上一篇文章中我们学习了更新操作&#xff0c;以及讲解了部分的更新操作符&#xff0c;今天我们继续学习剩余的更新操作符。 二、更新操作符 1、$rename 语法&#xff1a;{ $rename: { < field1 >: < newName1 >, < field2 >: < newName2…

第15章 呈现数据《Linux命令行与Shell脚本编程大全笔记》

bash shell 文件描述符&#xff0c;使用文件描述符>或者>>或者< 文件描述符缩写描述0STDIN标准输入1STDOUT标准输出2STDERR标准错误&无标准输出和标准错误 临时重定向到文件描述符>&2&#xff0c;需要在索引值之前加一个&exec:永久重定向&#xf…

力扣刷题之978.最长湍流子数组

题干要求&#xff1a; 给定一个整数数组 arr &#xff0c;返回 arr 的 最大湍流子数组的长度 。 如果比较符号在子数组中的每个相邻元素对之间翻转&#xff0c;则该子数组是 湍流子数组 。 更正式地来说&#xff0c;当 arr 的子数组 A[i], A[i1], ..., A[j] 满足仅满足下列条…

FPGA笔试

半加器和全加器的区别&#xff1a; 1、半加器不考虑输入的进位&#xff0c;称之为半加。 2、全加器反之&#xff0c;考虑进位。 SRAM/DRAM优缺点对比_sram和dram的主要区别及优缺点-CSDN博客 消除竞争冒险的方法 ①滤波电容&#xff1a;因为尖峰脉冲很窄&#xff0c;用很小的…

LM(Levenberg-Marquardt) PCG(预条件共轭梯度法)

文章目录 PCG共轭梯度法PCG算法步骤示例程序实现运行结果PCG vs LMPCG优势PCG劣势LM优势LM劣势综合比较对比示例代码结果与对比总结 PCG共轭梯度法 预条件共轭梯度法&#xff08;PCG&#xff09;是一种用于求解大规模稀疏线性系统 A x b Ax b Axb的迭代方法。它在求解对称正…

棱镜七彩上榜《嘶吼2024网络安全产业图谱》两大领域

7月16日&#xff0c;嘶吼安全产业研究院正式发布《嘶吼2024网络安全产业图谱》&#xff0c;棱镜七彩凭借在软件供应链安全领域出色的技术能力和优异的市场表现&#xff0c;上榜软件成分分析&#xff08;SCA&#xff09;、源代码安全两项细分领域。 据悉&#xff0c;本次《嘶吼2…

.net Excel的Winform控件 使用JSON公式代码

可以配合点击事件通过调接口的公式查询第三方平台的数据 using Feng.Json; using Feng.Script.CBEexpress; using Feng.Script.Method; using System; using System.Collections.Generic;namespace Feng.Script.FunctionContainer {[Serializable]public class JsonFunctionC…

1、PostgreSQL安装

PostgreSQL安装 1、postgreSQL介绍 PostgreSQL是一个免费的对象关系型数据库服务器&#xff08;ORDBMS&#xff09;&#xff0c;在灵活的BSD许可证下发行.PostgreSQL开发者把它念作post-gress-Q-L。PostgreSQL的Slogan是“世界上最先进的开源关系型数据库”。“开源界的Oracl…

成为CMake砖家(2): macOS创建CMake本地文档的app

大家好&#xff0c;我是白鱼。 使用 CMake 的小伙伴&#xff0c; 有的是在 Windows 上&#xff0c; 还有的是在 macOS 上。之前咱们讲了 windows 上查看 cmake 本地 html 文档的方式&#xff0c; 这篇讲讲 macOS 上查看 cmake 本地 html 文档的方法。 1. 问题描述 当使用 CMa…

防火墙--带宽管理

目录 核心思想 带宽限制 带宽保证 连接数的限制 如何实现 接口带宽 队列调度 配置位置 在接口处配置 带宽策略配置位置 带宽通道 配置地方 接口带宽、带宽策略和带宽通道联系 配置顺序 带块通道在那里配置 选项解释 引用方式 策略独占 策略共享 重标记DSCP优先…

Unity 关于Button无法高亮的问题

在Unity中&#xff0c;当我们新创建一个ButtonUI组件&#xff0c;并保持默认设置时&#xff0c;当我们把鼠标移动到Button上面时&#xff0c;Button是可以正常高亮的。但是当我们点击Button后再移动鼠标到Button处会发现Button无法高亮了。只有点击空白处后再移动鼠标到Button中…

文件乱码问题的一例分析

今天查看日志,遇到一种乱码问题, 终端展示的文件内容为: “\r\r\n” 尝试分析其原文. 使用xxd按照十六进制查看, 得到对应数据为: c3 8e c3 84 c2 bc c3 be c2 b2 c2 bb c2 b4 c3 a6 c3 94 c3 9a 0d 0d 0a 里面c3和c2大量存在,怀疑与两重编码有关, 使用NodeJS iconv-lite 做如…

软件游戏缺失concrt140.dll的解决方法,轻松搞定dll丢失问题

为了解决concrt140.dll文件缺失的问题&#xff0c;首先需要了解concrt140.dll文件的具体情况。只有在充分了解的基础上&#xff0c;才能采取有效的解决措施。下面&#xff0c;将详细介绍concrt140.dll文件及其解决方案。 一、了解concrt140.dll是什么 concrt140.dll 是微软的一…

SmartPipe新增功能:自动识别含间隙的低质量模型与自动处理超过180度的圆弧管路

自2022年12月SmartPipe上市以来&#xff0c;我一直在不断迭代和升级其轴线识别算法。对于客户反馈的无法自动转换的模型&#xff0c;我都视若珍宝&#xff0c;将其视为提升算法性能的绝佳机会。经过一年半的积累&#xff0c;SmartPipe的测试模型从最初的10个逐步迭代到近100个。…

使用MySQL WorkBench导出SQL脚本

参考: 在MySQL workbench 中导出sql脚本文件_mysql workbench自动保存的脚本在哪-CSDN博客 需要注意的是: 选择高级选项 这里不勾选&#xff0c;这样生成的INSERT是逐条的。将每个ROW合并为一个INSERT语句。 这里选择dump structure and data

画册制作攻略,助你成为视觉传达大师

在数字时代&#xff0c;画册作为一种传统而又充满魅力的视觉传达工具&#xff0c;依旧在各个领域扮演着重要角色。无论是在企业宣传、个人作品展示&#xff0c;还是艺术创作中&#xff0c;一本精美的画册都能让你的作品更具吸引力。那么&#xff0c;如何制作出一本引人入胜的画…