C#中泛型、程序集一些基本運用(Fifteenth Day)
今天主要在學習了泛型和程序集以及一些細碎的知識的運用。下面我就把今天所學的總結一下。
理論:
泛型:
* 英文名字是Generic,可以讓多個類型共享一組代碼,泛型允許我們聲明類型參數化,可以用不同的類型進行實例化,也就是可以用類型占位符,創建具體類型值真實的概念。
* C#中提供了五種泛型,分別是:類、結構、接口、委托和方法。今天就詳細學習一下泛型委托和泛型接口。
* 泛型的約束不能是數值類型。
* 我們在定義方法時習慣用方法名為Push來表示往數組中追加一個數;同樣的,用方法名為Pop來表示從數組中刪除一個數,往往是從數組的最後一個開始刪除。
枚舉器
* 數組之所以能夠被Foreach進行循環是因為數組存在著一個枚舉器(enumerator)依次返回請求數組中按照順序的每一個元素。
* 一個類如果實現IEnumerable接口,那麼他就可以實現接口中的GetEnumerator方法,具有了這個方法的類叫做可枚舉類,數組就是可枚舉類型。
程序集
* 擴展名為.exe和.dll的均稱為程序集。
GAC全局程序集緩存
* 安裝有公共語言運行時的每台計算機都具有稱為全局程序集緩存的計算機范圍內的代碼緩存。
* 全局程序集緩存中存儲了專門指定給由計算機中若干應用程序共享的程序集。 應當僅在需要時才將程序集安裝到全局程序集緩存中以進行共享。
* 一般原則是:程序集依賴項保持專用,並在應用程序目錄中定位程序集,除非明確要求共享程序集。 另外,不必為了使 COM 互操作或非托管代碼可以訪問程序集而將程序集安裝到全局程序集緩存。
匿名類
沒有具體類型,所以用var來接收;只能在方法體裡使用
例: var person=new{name="張三",age=18}
擴展方法 必須是靜態類 必須帶上訪問休止符 這裡是為object添加擴展方法,所以這裡寫object.
例:public static Myob(this object o,string content)
{
.......
}
實操
泛型委托的運用
將小寫的字符串轉換成大寫的字符串,用泛型委托實現
先定義一個泛型委托Func