c#泛型公共类示例
在C#中,泛型类是一种可以操作多种数据类型的类。这使得你可以编写更灵活、可重用的代码。泛型类通过在类名后使用尖括号<>和类型参数来定义。类型参数可以是具体的类型,如int或string,也可以是其他泛型类型,甚至是其他泛型类的类型参数。
下面是一些使用泛型类的示例:
示例 1:简单的泛型类
这个例子中,我们创建一个名为Box的泛型类,它可以存储任何类型的对象。
public class Box<T>
{
private T _content;
public Box(T content)
{
_content = content;
}
public T Content
{
get { return _content; }
set { _content = value; }
}
}
使用这个类的示例:
Box<int> intBox = new Box<int>(10);
Box<string> stringBox = new Box<string>("Hello, World!");
Console.WriteLine(intBox.Content); // 输出: 10
Console.WriteLine(stringBox.Content); // 输出: Hello, World!
示例 2:具有多个类型参数的泛型类
你可以定义一个拥有多个类型参数的泛型类。例如,一个可以比较两个不同类型对象的类。
public class Comparer<T, U> where T : IComparable<U>
{
public int Compare(T a, U b)
{
return a.CompareTo(b);
}
}
使用这个类的示例:
Comparer<int, int> intComparer = new Comparer<int, int>();
Console.WriteLine(intComparer.Compare(5, 10)); // 输出: -1 (因为5小于10)
示例 3:使用泛型约束
在定义泛型类时,你可以指定类型参数必须满足的约束。例如,你可以要求类型参数必须是类、结构体、具有特定方法的类或实现特定接口的类。
public interface IPrintable { void Print(); }
public class Printer<T> where T : IPrintable // T必须是IPrintable类型或其子类
{
public void PrintObject(T obj)
{
obj.Print();
}
}
使用这个类的示例:
class MyClass : IPrintable
{
public void Print()
{
Console.WriteLine("Printing from MyClass");
}
}
Printer<MyClass> printer = new Printer<MyClass>();
printer.PrintObject(new MyClass()); // 输出: Printing from MyClass
通过这些示例,你可以看到如何在C#中使用泛型类来创建灵活、可重用的代码。