C#中的泛型是什么,如何使用?

我正在学习C#,但我不太理解泛型的概念和实际用法。泛型是指一种更通用的类型定义方式,可以实现在编码时将类型参数化,从而使代码更加灵活和可复用。在C#中,泛型可以用于类、接口、方法等各种语法结构中,可以用来定义一种适用于不同类型的代码模板。使用泛型时需要声明具体类型,可以使用各种内置和自定义类型,以及其他泛型类型作为类型参数,从而创建具有具体类型的泛型类、接口或方法。我想请教如何正确使用C#中的泛型。

提问时间:2023-07-21 07:09:57 编辑时间:2023-07-21 07:09:59 提问者: Sky_Hunter
  • Silent_Runner
    8

    泛型可以通过使用尖括号<>来定义参数化的类型,具体使用方法如下:

    1. 定义一个泛型类

    需要使用T作为类型参数,在类中可以使用T来表示任何一种具体类型。例如:

    class GenericList<T>
    {
        private T[] items;
    
        public GenericList()
        {
            items = new T[0];
        }
    
        public void Add(T item)
        {
            Array.Resize(ref items, items.Length + 1);
            items[items.Length - 1] = item;
        }
    
        public T Get(int index)
        {
            return items[index];
        }
    }
    
    1. 定义一个泛型方法

    需要使用泛型类型参数<T>来表示要使用的类型。例如:

    public void PrintArray<T>(T[] arr)
    {
        foreach (T element in arr)
        {
            Console.WriteLine(element);
        }
    }
    
    1. 使用泛型

    定义好泛型类或方法后,可以使用各种内置和自定义类型,以及其他泛型类型作为类型参数,从而创建具有具体类型的泛型类、接口或方法。例如:

    // 创建一个具有string类型的GenericList对象
    GenericList<string> list = new GenericList<string>();
    list.Add("hello");
    
    // 使用泛型方法打印int类型的数组
    int[] arr = new int[] { 1, 2, 3 };
    PrintArray<int>(arr);
    
    回答时间:2023-07-21 07:10:02