c#泛型公共类示例

发布于:2025-09-05 ⋅ 阅读:(25) ⋅ 点赞:(0)

在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#中使用泛型类来创建灵活、可重用的代码。