C#泛型Generics教學

平常在寫 C#程式中通常都會將型別定義好,但在C#中提供了泛型的使用方式 (可以在宣告時再指定型別)。
<<<使用 T 來當作 – 型別參數 >>>
可以更彈性的方式來設計Class & Method,利用以下簡單範例來說明使用方式。

  說明範例  

static void MyDemo<T>(T x)
{
    Console.WriteLine("您傳入的型別為"+x.GetType()+ ",值=" + x);
}
static void Main(string[] args)
{
    MyDemo<string>("Hello");//您傳入的型別為System.String,值=Hello
    MyDemo<int>(3);//您傳入的型別為System.Int32,值=3
    MyDemo<double>(3.14);//您傳入的型別為System.Double,值=3.14
}

 

  類別泛型  

public class MyListClass<T>
{
    //初始化array,並參考泛型別
    T[] innerArray = new T[0];
    //Add Method - 新增一個array項目
    public void Add(T item)
    {
        Array.Resize(ref innerArray, innerArray.Length + 1);
        innerArray[innerArray.Length - 1] = item;
    }
    //Get Method - 取得array特定key的value
    public T Get(int k) {
        return innerArray[k];
    }
    //All Method - return array
    public T[] All()
    {
        return innerArray;
    }
}
static void Main(string[] args)
{
    // Declare a list of type int.
    MyListClass<int> listA = new MyListClass<int>();
    listA.Add(3);
    listA.Add(4);
    listA.Add(5);
    listA.Add(2);
    foreach (int row in listA.All()) {
        Console.WriteLine(row);
    }
}

 

延伸閱讀:

C#常用的特殊字元

C#使用StreamReader與StreamWrite來讀寫文件

C# MessageBox 教學

C# TextBox Multiline自動刪除第一行

C#委派delegate教學