国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

C#中的索引器

2019-11-08 02:14:52
字體:
來源:轉載
供稿:網友

  最近看面試題也好,敲手頭書上的例子也好,都讓我看到了索引器這個概念,原來沒有接觸過,今天就來看看什么是C#中的索引器

索引器允許類或結構的實例就像數組一樣進行索引。 索引器類似于屬性,不同之處在于他們的取值函數采用參數

用在哪里

  索引器經常是在主要用于封裝內部集合或數組的類型中實現的。假如,假定具有一個名為TemPRecord的類,此類表示在24小時內的10個不同時間記錄的華氏溫度。此類包含一個表示溫度的Float類型的名為“temps”的數組和表示記錄溫度的日期的DateTime

  通過在此類中實現一個索引器,客戶端可以通過float temp=tr[4]而不是float temp=tr.temps[4]語法訪問此類實例出對象的溫度

語法結構:聲明類或結構上的索引器,要使用this關鍵字

//[修飾符] 數據類型 this[索引類型 index]{ get{//獲得屬性的代碼} set{ //設置屬性的代碼}}

Demo

/// <summary> /// 最簡單的索引器 /// </summary> public class Person { //聲明私有數組 private string[] hero = new string[5] { "老白","小粉" , "炸雞哥", "空姐", "Hank" }; public int Length { get { return hero.Length; } } //聲明索引 public string this[int index] { get { return hero[index]; } set { hero[index] = value; } } class Program { static void Main(string[] args) { Person breakingbad = new Person(); //使用索引器設置值 breakingbad[3] = "謝耳朵"; breakingbad[4] = "潘妮"; //使用索引器獲得值 for (int i = 0; i < 5; i++) { System.Console.WriteLine("元素 #{0} = {1}", i, breakingbad[i]); } System.Console.WriteLine("Press any key to exit."); System.Console.ReadKey(); } } }

這里寫圖片描述

索引器和屬性的比較

1.相同點

1).索引和屬性都不用分配內存位置來存儲。

2).索引和屬性都是為類的其它成員提供訪問控制的。

3).索引和屬性都有get訪問器和set訪問器,它們可以同時聲明兩個訪問器,也可以只聲明其中一個。

2.不同點

1).屬性通常表示單獨的數據成員,而索引表示多個數據成員。2).屬性既可以聲明為實例屬性,也可以聲明為靜態屬性,而索引不能聲明為靜態的。3).屬性有簡潔的自動實現屬性,而索引必須聲明完整。4).get訪問器:屬性的 get 訪問器沒有參數,索引器的 get 訪問器具有與索引器相同的形參表。 5).set訪問器:屬性的 set 訪問器包含隱式 value 參數。除了值參數外,索引器的 set 訪問器還具有與索引器相同的形參表。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 衡南县| 武清区| 鹤峰县| 武义县| 庐江县| 盱眙县| 华蓥市| 永州市| 武义县| 凤城市| 汨罗市| 白山市| 绍兴县| 保康县| 呈贡县| 德兴市| 罗源县| 河曲县| 沙雅县| 金川县| 阜阳市| 鹤庆县| 广昌县| 鄄城县| 库车县| 龙南县| 新蔡县| 元朗区| 砀山县| 阜新市| 广西| 阿拉善左旗| 佳木斯市| 岳阳县| 灵丘县| 和田县| 望奎县| 沁水县| 隆尧县| 高阳县| 张北县|