C# 提供了泛型类和泛型函数,它们可以适用于不同的数据类型,使代码更加灵活和可重用。本文将为大家详细介绍 C# 泛型类(函数)的实例化小例子。
泛型类的定义
泛型类是一种不特定的类,它能够适应许多不同类型的数据,具备以下语法结构:
class 类名<T>
{
// 类的方法和属性代码
}
其中,T
是泛型类型参数,可以是任何标识符。通过这个参数,类可以适用于不同的数据类型。例如,下面的代码定义了一个泛型类 List
,它可以存储任何数据类型的元素:
class List<T>
{
private T[] items;
private int count;
public List()
{
items = new T[10];
count = 0;
}
public void Add(T item)
{
if (count < items.Length)
{
items[count] = item;
count++;
}
}
public T Get(int index)
{
if (index < count)
{
return items[index];
}
else
{
throw new IndexOutOfRangeException();
}
}
}
泛型类的实例化
创建一个泛型类对象时,需要指定泛型类型参数的具体类型。例如,如果要创建一个 List<int>
类型的对象,可以使用 new
关键字和类型参数指定符号 <int>
。示例代码如下:
List<int> intList = new List<int>();
intList.Add(1);
intList.Add(2);
intList.Add(3);
Console.WriteLine(intList.Get(0)); // 输出 1
Console.WriteLine(intList.Get(1)); // 输出 2
Console.WriteLine(intList.Get(2)); // 输出 3
上述代码创建一个 List<int>
类型的 intList
对象,并向其中添加了三个整型数据(1、2、3)。然后,使用 Get()
方法获取元素,并输出结果。
下面的代码示例创建一个 List<string>
类型的对象,并向其中添加了三个字符串数据("Hello"、"World"、"!"):
List<string> strList = new List<string>();
strList.Add("Hello");
strList.Add("World");
strList.Add("!");
Console.WriteLine(strList.Get(0)); // 输出 "Hello"
Console.WriteLine(strList.Get(1)); // 输出 "World"
Console.WriteLine(strList.Get(2)); // 输出 "!"
泛型函数的实例化
与泛型类类似,泛型函数也可以适用于许多不同类型的数据。泛型函数的语法结构如下:
public static 返回类型 函数名<T>(参数列表)
{
// 函数代码
}
其中,T
是泛型类型参数,函数的参数和返回值可以是任何类型。例如,下面的示例代码定义了一个泛型函数 Swap()
,它能够交换两个不同类型的变量的值:
public static void Swap<T>(ref T a, ref T b)
{
T temp = a;
a = b;
b = temp;
}
使用以下代码示例,可以调用这个泛型函数,交换两个整型变量和两个字符串变量的值:
int a = 1, b = 2;
Console.WriteLine($"Swap before: a = {a} b = {b}"); // 输出 "Swap before: a = 1 b = 2"
Swap(ref a, ref b);
Console.WriteLine($"Swap after: a = {a} b = {b}"); // 输出 "Swap after: a = 2 b = 1"
string str1 = "Hello", str2 = "World";
Console.WriteLine($"Swap before: str1 = {str1} str2 = {str2}"); // 输出 "Swap before: str1 = Hello str2 = World"
Swap(ref str1, ref str2);
Console.WriteLine($"Swap after: str1 = {str1} str2 = {str2}"); // 输出 "Swap after: str1 = World str2 = Hello"
使用 Swap()
函数的关键是在调用函数时,指定正确的类型参数。在上面的调用中,我们分别使用了 int
和 string
作为类型参数。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C# 泛型类(函数)的实例化小例子 - Python技术站