C#使用一个泛型方法操作不同数据类型的数组

目录

一、泛型方法及其存在的意义

二 、实例

1.源码

2.生成效果


        再发一个泛型方法的示例。

一、泛型方法及其存在的意义

        实际应用中,查找或遍历数组中的值时,有时因为数组类型的不同,需要对不同的数组进行操作,那么,可以使用同一种方法对不同类型的数组进行操作吗?答案是肯定的,本实例将使用一个泛型方法对不同类型的数组进行操作。

二 、实例

1.源码

// 使用一个泛型方法对不同类型的数组进行操作
namespace _127
{public partial class Form1 : Form{private Button? button1;private Button? button2;private Button? button3;public Form1(){InitializeComponent();StartPosition = FormStartPosition.CenterScreen;Load += Form1_Load;}private void Form1_Load(object? sender, EventArgs e){button1 = new Button();button2 = new Button();button3 = new Button();SuspendLayout();// // button1// button1.Location = new Point(21, 28);button1.Name = "button1";button1.Size = new Size(75, 23);button1.TabIndex = 0;button1.Text = "字符串";button1.UseVisualStyleBackColor = true;button1.Click += Button1_Click;// // button2// button2.Location = new Point(106, 28);button2.Name = "button2";button2.Size = new Size(75, 23);button2.TabIndex = 1;button2.Text = "整数";button2.UseVisualStyleBackColor = true;button2.Click += Button2_Click;// // button3// button3.Location = new Point(191, 28);button3.Name = "button3";button3.Size = new Size(75, 23);button3.TabIndex = 2;button3.Text = "布尔";button3.UseVisualStyleBackColor = true;button3.Click += Button3_Click;// // Form1// AutoScaleDimensions = new SizeF(7F, 17F);AutoScaleMode = AutoScaleMode.Font;ClientSize = new Size(284, 81);Controls.Add(button3);Controls.Add(button2);Controls.Add(button1);Name = "Form1";Text = "泛型查找不同数组中的值";}/// <summary>/// 声明一个字符串类型的数组/// 调用泛型方法,查找字符串“三”在数组中的索引/// </summary>private void Button1_Click(object? sender, EventArgs e){string[] str = ["一", "二", "三", "四", "五", "六", "七", "八", "九"];MessageBox.Show(Finder.Find(str, "三").ToString());}/// <summary>/// 声明一个整数类型的数组/// 调用泛型方法,查找数字5在数组中的索引/// </summary>private void Button2_Click(object? sender, EventArgs e){int[] IntArray = [1, 2, 3, 4, 5, 6, 7, 8, 9];MessageBox.Show(Finder.Find(IntArray, 5).ToString());}/// <summary>/// 声明一个布尔类型的数组/// 调用泛型方法,查找false在数组中的索引/// </summary>private void Button3_Click(object? sender, EventArgs e){bool[] IntArray = [true, false];MessageBox.Show(Finder.Find(IntArray, false).ToString());}/// <summary>/// 定义一个类/// 在类中,定义一个泛型方法,用来查找指定值在数组中的索引/// 遍历泛型数组/// </summary>public class Finder{public static int Find<T>(T[] items, T item){for (int i = 0; i < items.Length; i++){if (items[i]!.Equals(item)) //判断是否找到了指定值{return i;               //返回指定值在数组中的索引}}return -1;                      //如果没有找到,返回-1}}}
}

2.生成效果

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

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

相关文章

运维SRE-16 自动化批量管理-ansible2

7.6ansible-软件包管理模块 yum_repository(管理yum源) yum(yum命令) get_url(wget命令)1&#xff09;yum源配置管理模块 yum源模块 yum_repositoryyum源配置文件内容name[epel]yum源中的名字(中括号里面的名字即可)descriptionnamexxxxxxyum源的注释说明baseurlbaseurlyum源…

来分析两道小题

一、源码 二、分析 首先它会接两个参数一个是id一个是ps&#xff0c;传递的话会包含一个flag.php&#xff0c;然后数据库连接&#xff0c;之后传递过滤&#xff0c;然后查询&#xff0c;如果查到了就会取id&#xff0c;取出来看是不是跟adog一样&#xff0c;如果是它告诉你账号…

watchpoint

前言 内存被踩&#xff0c;通过 watchpoint 找到真凶 实例 以 smsc911x 网卡驱动为基体&#xff0c;进行实验&#xff0c;和网卡本身功能无关&#xff0c; 每执行一次 ifconfig eth0 up&#xff0c;就会调用一次 smsc911x_open()&#xff0c;我在这里设计了一段代码&#xf…

私域流量运营利器,解锁转化新境界

企业在私域流量运营中&#xff0c;掌握认知、方法论、工具、及落地团队是四位一体的关键。团队建设、运营工具辅助、私域流量的载体选择都是至关重要的环节&#xff0c;其中企业微信与个人微信是目前最热门的私域流量载体。 企业微信与个人微信&#xff0c;两者各有千秋&#…

生产监控、故障诊断、实时预警…… DolphinDB 工业物联网智能运维解决方案

随着数字化转型的浪潮兴起&#xff0c;越来越多企业认识到工业物联网在提升工业生产安全性和效率方面的关键作用。然而&#xff0c;随着设备规模的扩大和工艺复杂性的提升&#xff0c;智能化运维监管成为工业企业急需解决的重要挑战。 智能运维是一种利用先进技术和数据分析方…

Nginx网络服务三-----(三方模块和内置变量)

1.验证模块 需要输入用户名和密码 我们要用htpasswd这个命令&#xff0c;先安装一下httpd 生成文件和用户 修改文件 访问页面 为什么找不到页面&#xff1f; 对应的路径下&#xff0c;没有这个文件 去创建文件 去虚拟机浏览器查看 有的页面不想被别人看到&#xff0c;可以做…

2024022201-并发控制

并发控制 多事务执行方式 (1)事务串行执行 每个时刻只有一个事务运行&#xff0c;其他事务必须等到这个事务结束以后方能运行不能充分利用系统资源&#xff0c;发挥数据库共享资源的特点 (2)交叉并发方式&#xff08;interleaved concurrency&#xff09; 事务的并行执行是…

数据结构与算法之美学习笔记:53 | 算法实战(二):剖析搜索引擎背后的经典数据结构和算法

目录 前言整体系统介绍搜集1. 待爬取网页链接文件&#xff1a;links.bin2. 网页判重文件&#xff1a;bloom_filter.bin3. 原始网页存储文件&#xff1a;doc_raw.bin4. 网页链接及其编号的对应文件&#xff1a;doc_id.bin 分析索引查询总结引申 前言 本节课程思维导图&#xff1…

Wireshark过滤DNS协议包语法实战

背景 现网DNS服务器发现CPU突增&#xff0c;发现有可能是客户恶意发起的随机子域名扫描&#xff0c;对服务器进行抓包分析&#xff0c;记录下当时的操作。 抓包 执行命令 tcpdump -iany port 53 and host $ip -nnv -w $ip.pcap进行抓包导出到本地&#xff0c;使用Wireshark进…

【漏洞复现】H3C SecParh堡垒机任意用户登录漏洞

Nx01 产品简介 H3C SecParh堡垒机是一款专业用于安全管理的堡垒机产品&#xff0c;它通过强大的访问控制功能和安全审计功能&#xff0c;实现对网络服务器的远程安全管理和监控。 Nx02 漏洞描述 H3C SecParh堡垒机的get_detail_view.php中存在任意用户登录漏洞。攻击者可以构建…

Leetcode - 周赛385

目录 一&#xff0c;3042. 统计前后缀下标对 I 二&#xff0c;3043. 最长公共前缀的长度 三&#xff0c;3044. 出现频率最高的质数 四&#xff0c;3045. 统计前后缀下标对 II 一&#xff0c;3042. 统计前后缀下标对 I 该题数据范围小&#xff0c;可直接暴力求解&#xff0c;…

dp入门(模板题)

解法一&#xff1a; 双指针&#xff0c;没必要开数组直接边输边算&#xff0c;max至少要2个数&#xff0c;补一个数时的特判 #include <iostream> #include <vector> #include <algorithm> using namespace std; #define endl \nint main() {ios::sync_wit…