目录
一、泛型方法及其存在的意义
二 、实例
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
}
}
}
}