C 教學第15講索引器1 學習筆記

2021-04-23 05:23:02 字數 1087 閱讀 7111

第15講索引器1

快樂喬巴的部落格

索引器允許類或結構的例項按照與陣列相同的方式進行索引。索引器類似於屬性,不同之處在於它們的訪問器採用引數。索引器也被稱為有參屬性,下面我們來看看索引器跟陣列和屬性之間有什麼不同。

我們新建乙個空白檔案,首先先看看類陣列是怎麼使用的:

通過執行,我們可以得到結果,各自人名都能顯示出來。

好,下面我們宣告乙個帶索引器的類。

我們執行**,效果如下:

我們看,a[0]a[1]a[2]是類陣列,b[0]b[1]b[2]是索引器,它們得到的結果是一樣的。我們來看索引器和類陣列有什麼區別。類陣列存放的是乙個乙個類的例項,當然類陣列的實質呢它只是訪問託管堆中的記憶體指標,而這些記憶體指標就指向託管堆中的乙個乙個類。而索引器呢,它的這些名字(張三李四王五)其實是存放在索引器裡的乙個陣列裡面,這樣呢索引器只需要宣告乙個例項,而類陣列需要宣告多個例項,當然i這個索引器並沒有寫完全。在get和set訪問器中應該判斷index的取值範圍(0~9)。

這裡我們也看到索引器呢提供了一i種陣列封裝到類的一種方法,就好象在類裡面封裝string或者int型別的物件一樣。為了資料的安全,也可以把資料封裝到類裡,索引器有乙個比類陣列更為靈活的地方,就是它的索引值並不一定必須為整數,也就是說索引器的索引值可以為其他的資料型別,好下面我們來試驗一下:

首先介紹下hashtable,在.net framework中,hashtable是system.collections命名空間提供的乙個容器,用於處理和表現類似key和value的鍵值對,其中key通常可用來快速查詢,同時key是區分大小寫;value用於儲存對應key值。hashtable中key/value鍵值對均為object型別,所以hashtable可以支援任何型別的key/value鍵值對

執行**後能正常的顯示。

索引器還有乙個更為吸引人的地方,就是它能夠被過載。我們現在再對程式做些修改:

執行**編譯之後,效果如下:

我們看,執行成功。我們通過字元索引來給索引器賦值,跟前面的這個用數字索引給索引器賦值有所不同,這個是過載。實際專案上並不符合邏輯,這裡只是為了給大家做乙個演示。

好,這節課就演示到這裡。

由快樂喬巴聽課摘寫筆記

C 教學第19講字元1 學習筆記

第19講字元1 快樂喬巴的部落格 現在我們來講講電腦螢幕上的文字,螢幕上的字是由乙個個畫素點組成的。每乙個字元用乙個畫素點拼接出來,這些畫素點組成影象變成了我們的文字,我們可以用windows自帶的放大鏡來看 在左下角的開始 程式 附件 輔助工具中找到 然後放大倍數可以看到文字是由畫素點組成的,如圖...

C 教學第9講事件1 學習筆記

第9講 事件1 快樂喬巴的部落格 事件是類在發生其關注的事情時來提供通知的一種方式。例如,封裝使用者介面控制項的類可以定義乙個在使用者單擊該控制項時發生的事件。控制項類不關心單擊按鈕時發生了什麼,但它需要告知派生類單擊事件已發生。然後,派生類可選擇如何響應。說到事件,就得談談2個角色 事件發行者 p...

C 教學第21講類 學習筆記

第21講類 快樂喬巴的部落格 類是物件導向程式設計的核心部分,在邏輯上它是一些相依的功能 或稱方法 和資料的組合體。說到類,我們不得不談一下物件導向,物件導向 object oriented 在程式設計中這是乙個非常重要的概念,如今很多人去應聘程式設計師的時候都會被問到乙個問題,談談你對物件導向的理...