91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

C#泛型編程如何實現

c#
小樊
82
2024-10-24 13:15:27
欄目: 編程語言

在C#中,泛型編程是一種編程范式,它允許程序員編寫可重用、可擴展的代碼。泛型允許程序員創建能夠處理不同類型數據的類、接口和方法,而無需為每種數據類型編寫單獨的代碼。泛型編程通過類型參數來實現,這些類型參數可以在類、接口和方法的定義中使用。

以下是使用C#泛型編程實現的一個簡單示例:

  1. 定義一個泛型接口:
public interface IStack<T>
{
    void Push(T item);
    T Pop();
    bool IsEmpty();
}

在這個例子中,IStack<T> 是一個泛型接口,它表示一個棧數據結構。T 是一個類型參數,表示棧中存儲的元素類型。

  1. 實現泛型接口:
public class Stack<T> : IStack<T>
{
    private List<T> _items = new List<T>();

    public void Push(T item)
    {
        _items.Add(item);
    }

    public T Pop()
    {
        if (IsEmpty())
        {
            throw new InvalidOperationException("Stack is empty.");
        }

        T item = _items[_items.Count - 1];
        _items.RemoveAt(_items.Count - 1);
        return item;
    }

    public bool IsEmpty()
    {
        return !_items.Any();
    }
}

在這個例子中,Stack<T> 是一個泛型類,它實現了 IStack<T> 接口。_items 是一個類型為 List<T> 的私有字段,用于存儲棧中的元素。

  1. 使用泛型類:
public class Program
{
    public static void Main()
    {
        IStack<int> intStack = new Stack<int>();
        intStack.Push(1);
        intStack.Push(2);
        intStack.Push(3);

        Console.WriteLine("Int stack:");
        while (!intStack.IsEmpty())
        {
            Console.WriteLine(intStack.Pop());
        }

        IStack<string> stringStack = new Stack<string>();
        stringStack.Push("A");
        stringStack.Push("B");
        stringStack.Push("C");

        Console.WriteLine("\nString stack:");
        while (!stringStack.IsEmpty())
        {
            Console.WriteLine(stringStack.Pop());
        }
    }
}

在這個例子中,我們創建了兩個不同類型的棧:一個用于存儲整數,另一個用于存儲字符串。通過使用泛型類 Stack<T>,我們可以輕松地實現這一目標,而無需為每種數據類型編寫單獨的代碼。

0
沂南县| 黑河市| 盐城市| 湘潭市| 益阳市| 阿尔山市| 赤城县| 梁平县| 谷城县| 台北县| 苍山县| 酉阳| 武义县| 遂宁市| 恭城| 山东| 皮山县| 根河市| 历史| 东方市| 大连市| 航空| 萨迦县| 南川市| 广东省| 临清市| 额尔古纳市| 辽中县| 临夏县| 昌都县| 淮安市| 麦盖提县| 仲巴县| 武强县| 类乌齐县| 商丘市| 交城县| 梅州市| 天祝| 当雄县| 肇源县|