一、什么是泛型?
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.泛型使用
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/119006.html
標籤:C#
上一篇:C# 8 的模式匹配
