C# 中的泛型總結

.NET中的泛型功能相當強大,它對實現類型安全和代碼重用都有很大的作用。現在將泛型的知識整理如下:

1、概念:泛型是將類型作爲參數傳遞給類、方法、委託;

2、泛型的類型約束:是對參數類型進行約束限制,在需要使用參數類型的特定功能時,約束是必須的。如在泛型類中,需要使用參數類的一個方法時,則必須指定這個參數類是實現了一個特定的接口或源自具體的基類。約束的語法爲:public class Master<T> where T : Employee{}
在應用 where T : class 約束時,避免對類型參數使用 ==!= 運算符,因爲這些運算符僅測試引用同一性而不測試值相等性。即使在用作參數的類型中重載這些運算符也是如此。下面的代碼說明了這一點;即使 String 類重載 == 運算符,輸出也爲 false。

public static void OpTest<T>(T s, T t) where T : class
{
    System.Console.WriteLine(s == t);
}
static void Main()
{
    string s1 = "foo";
    System.Text.StringBuilder sb = new System.Text.StringBuilder("foo");
    string s2 = sb.ToString();
    OpTest<string>(s1, s2);
}
3、泛型類的繼承:原則:要求子類對應於父類的泛型參數更具體(個人理解),如父類型泛型參數,而子類沒有(需要顯示指定)、父類對泛型參數有約束而子類沒有、父類的泛型參數比子類多,這些都是錯誤的,這時,子類可以從封閉式(將泛型參數指定爲一個具體的類型)基類繼承、

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章