{site_name}

{site_name}

🌜 搜索

C# 泛型(Generic)提供了一种创建可重用和类型安全的类、方法和数据结构的

编程 𝄐 0
c#泛型使用,c#泛型的作用,c#泛型函数,简述c#中泛型的主要思想,使用泛型有什么好处,c#泛型怎么使用,c#泛型有哪些
C# 泛型(Generic)提供了一种创建可重用和类型安全的类、方法和数据结构的方式,因为它们可以与多个不同类型一起工作而不需要对每个类型进行重新编写。

例如,如果您使用非泛型方式编写一个只返回整数数组中最大值的方法,那么您需要为每种可能的数组类型都编写一个新方法。但是,如果您使用泛型方法来编写相同的方法,您可以将其编写为仅使用一种类型,并且该方法可以适用于任何类型的数组。

下面是一个示例,演示如何使用泛型方法来查找数字数组中的最大值:

csharp
public static T FindMax<T>(T[] array) where T : IComparable<T>
{
if (array == null || array.Length == 0)
{
throw new ArgumentException("The input array cannot be null or empty.");
}

T max = array[0];
for (int i = 1; i < array.Length; i++)
{
if (array[i].CompareTo(max) > 0)
{
max = array[i];
}
}
return max;
}


这个方法有一个类型参数 T,它代表数组中元素的类型。我们在方法签名中使用 where 关键字来限制 T 必须实现 IComparable<T> 接口,这样我们就可以使用 CompareTo() 方法来比较元素。

这个方法可以用于任何类型的数组,只要该类型实现了 IComparable<T> 接口。例如,以下是如何使用上述泛型方法来查找整数数组中的最大值:

csharp
int[] intArray = { 1, 5, 2, 4, 3 };
int maxInt = FindMax<int>(intArray);
Console.WriteLine(maxInt); // Output: 5


同样,以下是如何使用相同的方法来查找字符串数组中的最大值:

csharp
string[] stringArray = { "apple", "orange", "banana" };
string maxString = FindMax<string>(stringArray);
Console.WriteLine(maxString); // Output: orange