從C# 4.0開始,泛型接口和泛型委託都支持協變和逆變,由於歷史原因,數組也支持協變。 里氏替換原則:任何基類可以出現的地方,子類一定可以出現。 協變(out) 協……...
0. 前言 在上一篇中,我故意留下了查詢的示範沒講。雖然說可以通過以下代碼獲取一個DataReader: IDataReader reader =……...
c++容器list、vector、map、set區別 list 封裝鏈表,以鏈表形式實現,不支持[]運算符。對隨機訪問的速度很慢(需要遍歷整個鏈表),插入數據很快(不需要拷貝和……...
一:背景 1. 講故事 在前一篇大內存排查中,我們看到了Dictionary正在做擴容操作,當時這個字典的count=251w,你把字典玩的66飛起,其實都是底層為你負重前行,比如其中……...
擴展方法(Extension Methods)是C#3.0時引入的新特性,相信很多人都聽過並且也都用過,最常見的是在LINQ中的使用。不僅如此,在開發中,我們也可以創建自己擴展方法,使用它來優化類的設……...
C語言中又有哪些運運算元呢?如下所示:※ 算術運運算元※ 賦值運運算元※ 關係運運算元※ 邏輯運運算元※ 三目運運算元C語言基本算術運運算元如下表:除法運算中注意: 如果相除的兩個數都是整數的話,則結果……...
概念 異常處理是指程序在運行過程中,發生錯誤會導致程序退出,這種錯誤,就叫做異常 但並不是所有的錯誤都是異常 而處理這種錯誤,稱為異常處理 異常處理實……...
字符串操作在任意編程語言的日常編程中都隨處可見,今天來彙總一下 C# 中關於字符串的一些你可能遺忘或遺漏的知識點。逐字字符串 在普通字符串中,反斜槓字符是轉義字符。而在逐字字符串(Verb……...
通常,反射用於動態獲取對象的類型、屬性和方法等信息。今天帶你玩轉反射,來彙總一下反射的各種常見操作,撿漏看看有沒有你不知道的。獲取類型的成員 Type 類的 GetMembers 方法用來……...
二級指針相對於一級指針,顯得更難,難在於指針和數組的混合,定義不同類型的二級指針,在使用的時候有著很大的區別第一種內存模型char *arr[]若有如下定義 char ……...