泛型的基本概念:
泛型(Generics)允许你编写一个灵活的、可重用的代码框架,而不必在编写时指定代码将操作的确切数据类型。这意味着你可以编写一个函数或类来处理多种数据类型,而不是为每种数据类型编写一个单独的函数或类。
优点:
类型安全:使用泛型可以在编译时检查类型,减少运行时错误。
代码复用:可以用同一个方法或类处理不同类型的数据。
性能提升:使用泛型避免了类型转换或装箱拆箱操作,这可以提高代码的性能。
C#中的泛型:
在C#中,你可以在类、接口、委托和方法上使用泛型。下面是一些基本示例。
泛型类:
public class Box<T>
{
private T content;
public void Pack(T item)
{
content = item;
}
public T Unpack()
{
return content;
}
}
在这个例子中,T 是一个占位符,代表未来你会用某个具体的类型来替换它。当你创建一个 Box 类的实例时,你可以指定 T 的具体类型。
使用泛型类:
Box<int> intBox = new Box<int>();
intBox.Pack(123);
Box<string> stringBox = new Box<string>();
stringBox.Pack("Hello Generics!");
泛型方法:
泛型也可以用于方法,即使这个方法是在非泛型类中。
public class Utility
{
public void Swap<T>(ref T lhs, ref T rhs)
{
T temp;
temp = lhs;
lhs = rhs;
rhs = temp;
}
}