泛型方法和泛型类可提升代码复用与类型安全,如定义PrintValue(T value)自动推断类型,Swap实现值交换,SimpleStack支持多类型栈操作,通过where约束限定类型条件,Pair类关联不同数据类型,避免装箱拆箱,增强性能。

泛型是 C# 中非常强大的特性,它允许我们编写可重用、类型安全的代码。通过使用泛型方法和泛型类,可以在不指定具体类型的情况下定义算法或数据结构,从而提高代码的灵活性和性能。本文将介绍如何在 C# 中使用泛型方法与泛型类,并提供实用示例。
泛型方法是指在其定义中包含类型参数的方法。类型参数用尖括号 T 表示,运行时由实际传入的类型自动推断。
定义一个简单的泛型方法:
public static void PrintValue调用该方法时无需显式指定类型,编译器会根据传入参数自动推断:
PrintValue(100); // 输出: Value: 100, Type: System.Int32也可以手动指定类型:
PrintValue泛型方法常用于工具类中,例如交换两个变量的值:
public static void Swap调用方式:
int x = 10, y = 20;泛型类允许类的操作针对多种类型保持一致。最常见的例子是集合类,如 List
自定义一个简单的泛型栈类:
public class SimpleStack public void Push(T item)
{
items.Add(item);
}
public T Pop()
{
if (items.Count == 0)
throw new InvalidOperationException("Stack is empty.");
T item = items[items.Count - 1];
items.RemoveAt(items.Count - 1);
return item;
}
public int Count => items.Count;
}
使用这个泛型栈:
var stringStack = new SimpleStackvar intStack = new SimpleStack
intStack.Push(1);
intStack.Push(2);
Console.WriteLine(intStack.Pop()); // 输出: 2
泛型类的好处在于:一次定义,多类型复用,且避免了装箱拆箱带来的性能损耗。
有时我们需要对泛型参数做限制,比如要求它必须实现某个接口或具有无参构造函数。这时可以使用 泛型约束(where 关键字)。
常见约束包括:
示例:只允许引用类型并具备无参构造函数:
public class ServiceFactory这样就能确保 new T() 是合法操作。
泛型支持多个类型参数,适用于键值对、映射等场景。
例如定义一个简单的键值容器:
public class Pair public Pair(TFirst first, TSecond second)
{
First = first;
Second = second;
}
}
使用方式:
var pair = new Pair这种设计在需要关联不同类型数据时非常有用。
基本上就这些。掌握泛型方法和泛型类的使用,能让你写出更高效、更安全的 C# 代码。关键是理解类型参数的作用以及如何通过约束控制可用操作。实际开发中多结合集合、工厂模式、服务注册等场景练习,自然就能熟练运用。
以上就是C# 如何使用泛型方法和泛型类_C# 泛型方法与泛型类使用教程的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号