[C#] 泛用方法 Generic Method

  • 12387
  • 0
  • 2011-03-09

[C#] 泛用方法 Generic Method

「泛用方法」甚麼鬼(自己亂取)?以往我們都只用 泛型,哪來這東西。

先來個示意

2011-03-09_093241

2011-03-09_093329

 

是的,聰明的你,已經看出來。(我都貼一些粗淺的東西)

 

某些時候我們可能需要定義並使用方法來處理不同資料型別的項目,若是使用 System.Object

又需負擔型別檢查與效能,這時後也許可以考慮使用泛用方法。


Sort<int>(IntArray);

 


Sort<string>(arrNames);

 

型別推斷


T Compare<T>(T arg1,Targ2){
	...
}

//沒有錯誤
//推斷出型別引數 T 為  int
Compare(100,65);

//錯誤
//無法推斷出型別
Compare(2,"R");

 

另外對於陣列,維度數目不同也是會失敗


	...
}

void CallDemo(){
	int[,] MyArray;
	Demo(MyArray);
}

 

注意:

  • 我們可以省略所有的型別引數來叫用型別推斷。如果提供了一個型別引數,就必須提供所有的。
  • 只有泛用方法才支援型別推斷。不可在 類別、結構、介面、委派上叫用型別推斷。

 

HEMiDEMi 的標籤:

三小俠  小弟獻醜,歡迎指教