.NET基礎(chǔ)第十一天


一、里氏替換(設(shè)計(jì)原則之一)
????????1) 子類可以賦值給父類:如果有一個(gè)地方需要一個(gè)父類作為參數(shù),我們可以給一個(gè)子類代替。
????????2) 如果父類中裝的是子類對(duì)象,那么可以將這個(gè)父類強(qiáng)制轉(zhuǎn)換為子類對(duì)象
子類對(duì)象可以調(diào)用父類中的成員,但是父類對(duì)象永遠(yuǎn)都只能調(diào)用自己的成員。
二、is和as
????????1) is:表示類型轉(zhuǎn)換,如果能夠轉(zhuǎn)換成功,則返回一個(gè)true,否則返回false
????????2) as:表示類型轉(zhuǎn)換,如果能夠轉(zhuǎn)換成功,則返回對(duì)應(yīng)的對(duì)象,否則返回一個(gè)null
三、protected受保護(hù)的
????????可在當(dāng)前類或者子類中訪問(wèn)
四、集合
1)ArrayList(非泛型集合,會(huì)發(fā)生拆裝箱)
常用方法:
ArrayList集合的長(zhǎng)度的問(wèn)題
????????每次集合中實(shí)際包含的元素個(gè)數(shù)(Count)超過(guò)了包含的元素的個(gè)數(shù)(Capacity)的時(shí)候,集合就會(huì)向內(nèi)存中申請(qǐng)多開(kāi)辟一倍的空間,來(lái)保證集合的長(zhǎng)度一直夠用 ( 2?)
2)Hashtable? ?鍵值對(duì)集合? ?
字典? ?孫? ? ?sun——孫
****鍵值對(duì)集合當(dāng)中,鍵必須是唯一的,而值是可以重復(fù)的
五、Path類--操作路徑的
常用方法:
六、File類--操作文件的
常用方法:
七、foreach循環(huán)(語(yǔ)法糖 背后的原理是枚舉器)
***香草的補(bǔ)充:foreach背后的原理?
?????????例如:foreach (int i in items) { }
? ? ? ? ?在foreach循環(huán)中,迭代集合items的過(guò)程如下:
? ? ? ? ? ? (1)調(diào)用items.GetEnumerator() 返回一個(gè)IEnumerator引用。這個(gè)方法可以通過(guò)IEnumerable接口的實(shí)現(xiàn)代碼來(lái)獲得。但這是可選的。
? ? ? ? ? ? (2)調(diào)用返回的IEnumerator接口的MoveNext()方法。
? ? ? ? ? ? (3)如果MoveNext()方法返回true,就使用IEnumerator接口的Current屬性獲取對(duì)象的一個(gè)引用,用于foreach循環(huán)。
? ? ? ? ? ? (4)重復(fù)前面兩步,直到MoveNext()方法返回false為止,此時(shí)循環(huán)停止。
即:
八、編碼簡(jiǎn)介
????????標(biāo)準(zhǔn)ASCII? 128個(gè) 0-127? ? ?擴(kuò)展ASCII 256個(gè) 0-255
????????GB2312? 簡(jiǎn)體字? ?Big5? 繁體字
????????Unicode 萬(wàn)國(guó)碼? utf-8
????????編碼:將字符串以怎樣的形式保存為二進(jìn)制
????????亂碼:產(chǎn)生亂碼的原因:就是你保存這個(gè)文件所采用的編碼,和你打開(kāi)這個(gè)文件所采用的編碼不一致