平常在寫 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);
}
}
延伸閱讀: