一、什么是泛型?
1.泛型是.net Framwork 2.0增加的新功能,注意泛型不是語法糖(var i = 5;//編譯器提供的便捷功能 ,稱之為語法糖)。
2.主要功能 為了一個方法滿足不同的型別的需求比如:一個方法完成多個物體查詢,一個方法完成不同型別的資料展示,任意一個物體轉換成一個json字串,型別這些事情泛型很擅長,并且運行效率也非常高。
//那里用泛型?
//泛型方法:為了一個方法滿足不同的型別的需求
//泛型類:一個類滿足不同型別的需求 List Dictionary
//泛型介面:一個介面滿足不同型別的需求
//泛型委托:一個委托滿足不同型別的需求
3.泛型種類:泛型類、泛型方法、泛型介面、泛型委托。
4.泛型原理是----泛型為什么也可以支持不同型別的引數?
泛型宣告方法時,并沒有寫死型別,T是什么?不知道 T要等著呼叫 的時候才指定
設計思想:延遲宣告,推遲一切可以推遲的,一切能晚點做的事 ,就晚點做
泛型方法和性能跟普通方法一致,是最好的,而且還能一個方法滿足多個不同型別。
注意::::::
//WebServices WCF 都不能用泛型,為什么?
//跨語言的,別的語言也不能用,不支持泛型。
//服務在發布的時候必須是確定的,泛型在編譯時確定 不了
5.宣告泛型 方法名稱后加上尖括號,里面是型別引數
型別引數實際上就是一個型別宣告,方法就是可以用這個型別T了.
復制代碼
public class GenericTest
{
/// <summary>
/// 多個型別引數 不能關鍵字作為引數 型別名稱不能重復
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="tParameter"></param>
public T Get<T,S,Model,Null>(T tParameter)
{
throw new Exception();
}
}
/// <summary>
/// 泛型繼承要指定父型別別
/// </summary>
public class ChildClass:GenericClass<int>,GenericInterface<string>
{
}
/// <summary>
/// 泛型類子類
/// </summary>
/// <typeparam name="T"></typeparam>
public class GenericChildClass<T> : GenericClass<T>
{
}
/// <summary>
/// 泛型類
/// </summary>
/// <typeparam name="T"></typeparam>
public class GenericClass<T>
{
}
/// <summary>
/// 泛型介面
/// </summary>
/// <typeparam name="S"></typeparam>
public interface GenericInterface<S>
{
}
/// <summary>
/// 泛型委托
/// </summary>
/// <typeparam name="T"></typeparam>
public delegate void Do<T>();
復制代碼
6.泛型使用
uj5u.com熱心網友回復:
uj5u.com熱心網友回復:
每天回帖即可獲得10分可用分!小技巧:教您如何更快獲得可用分 你還可以輸入10000個字符轉載請註明出處,本文鏈接:https://www.uj5u.com/net/109128.html
標籤:C#
