中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

C#語言知識點整理 - 索引

發布時間:2020-06-27 02:07:10 來源:網絡 閱讀:618 作者:勇闖天涯X 欄目:編程語言

一、 索引器定義:

索引器允許類或結構的實例就像數組一樣進行索引。 

二、 索引器使用

索引器經常是在主要用于封裝內部集合或數組的類型中實現的。

C# 并不將索引類型限制為整數

三、 接口索引器與類索引器的區別: 

 接口訪問器不使用修飾符。

 接口訪問器沒有體。 

四、 索引器與屬性的區別:

索引器與屬性類似。 除下表中顯示的差別外,為屬性訪問器定義的所有規則同樣適用于索引器訪問器。

屬性

索引器

允許像調用公共數據成員一樣調用方法。

允許對一個對象本身使用數組表示法來訪問該對象內部集合中的元素。

可通過簡單的名稱進行訪問。

可通過索引器進行訪問。

可以為靜態成員或實例成員。

必須為實例成員。

屬性的 get 訪問器沒有參數。

索引器的 get 訪問器具有與索引器相同的形參表。

屬性的 set 訪問器包含隱式 value 參數。

除了值參數外,索引器的 set 訪問器還具有與索引器相同的形參表。

支持對使用短語法。

不支持短語法。

 

五、 索引器示例:

   1: using System;
   2: using System.Collections.Generic;
   3: using System.Linq;
   4: using System.Text;
   5: using System.Collections.Specialized;
   6:  
   7: namespace CSharp.Indexer
   8: {
   9:     public class Employee
  10:     {
  11:         private string _name = "";
  12:  
  13:         public string Name
  14:         {
  15:             get { return _name; }
  16:             set { _name = value; }
  17:         }
  18:  
  19:         public Employee(string name)
  20:         {
  21:             this._name = name;
  22:         }
  23:     }
  24:  
  25:     public interface IEmployeeInterface
  26:     {
  27:         //int Indexer declaration
  28:         Employee this[int index]
  29:         {
  30:             set;
  31:         }
  32:  
  33:         //string indexer declaration
  34:         Employee this[string name]
  35:         {
  36:             get;
  37:             set;
  38:         }
  39:     }
  40:  
  41:     public class EmployeeList : IEmployeeInterface
  42:     {
  43:         private ListDictionary empDictionary;
  44:  
  45:         public EmployeeList()
  46:         {
  47:             empDictionary = new ListDictionary();
  48:         }
  49:  
  50:         // The int indexer.
  51:         public Employee this[int item]
  52:         {
  53:             set
  54:             {
  55:                 if (value != null && !string.IsNullOrEmpty(value.Name))
  56:                 {
  57:                     empDictionary.Add(value.Name, value);
  58:                 }
  59:             }
  60:         }
  61:  
  62:         // The string indexer.
  63:         public Employee this[string name]
  64:         {
  65:             get { return (Employee)empDictionary[name]; }
  66:             set { empDictionary.Add(name, value); }
  67:         }
  68:     }
  69:  
  70:     class Program
  71:     {
  72:         static void Main(string[] args)
  73:         {
  74:             EmployeeList empList = new EmployeeList();
  75:  
  76:             empList[0] = new Employee("david");
  77:             empList[1] = new Employee("lisa");
  78:             empList[2] = new Employee("nana");
  79:  
  80:             empList["alice"] = new Employee("alice");
  81:             empList["sam"] = new Employee("sam");
  82:  
  83:             Employee alice = empList["alice"];
  84:             Console.WriteLine("Alice 's name is {0}", alice.Name);
  85:             Employee nana = empList["nana"];
  86:             Console.WriteLine("Nana 's name is {0}", nana.Name);
  87:             
  88:             Console.ReadLine();
  89:         }
  90:     }
  91: }
向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

修水县| 蒙山县| 克拉玛依市| 巫溪县| 镶黄旗| 谷城县| 新乡县| 吴川市| 当阳市| 江阴市| 庆阳市| 城口县| 东台市| 广安市| 滨州市| 宽城| 贵溪市| 喀什市| 即墨市| 离岛区| 土默特右旗| 化隆| 思南县| 长阳| 平定县| 平陆县| 台州市| 乌拉特后旗| 濮阳县| 广饶县| 林西县| 囊谦县| 柳州市| 东乌珠穆沁旗| 莱州市| 静安区| 五峰| 天峨县| 多伦县| 汨罗市| 滦平县|