C#泛型(C# Generics)
C#泛型概述
先看一個通用的數據結構示例:
結構類:
結構類:
public class stack
{
object[] m_Items;
public void Push(object item)
{……}
public object Pop()
{……}
}
基於object解決方案存在的問題
-性能問題:
-類型安全問題(更為嚴重)
解決性能和類型安全的方法:
-編寫特定類型的數據結構。
基於編寫特定類型的數據結構的問題:
-影響工作效率。
-代碼冗余,重用率低。
-一個數據結構變更,要將所有類型的數據結構做相應的修改。
-為了提供不可預知的數據類型的支持,還是要提供object類型接口,類型安全的問題又會出現。
為了解決上面所遇到的問題,現在引入泛型的概念。
什麼是泛型?
編程模型的有點在於,內部算法和數據操作保持不變,而實際數據類型可以在使用時指定。
泛型是如何實現的?
泛型的好處
-值類型,性能通常會提高200%
-引用類型,在訪問類型時,可以預期性能最多提高100%(當然,整個應用程序的性能可能會提高,也 可能不會提高)
應用泛型