一、索引器定義:
建網(wǎng)站原本是網(wǎng)站策劃師、網(wǎng)絡(luò)程序員、網(wǎng)頁設(shè)計師等,應(yīng)用各種網(wǎng)絡(luò)程序開發(fā)技術(shù)和網(wǎng)頁設(shè)計技術(shù)配合操作的協(xié)同工作。成都創(chuàng)新互聯(lián)專業(yè)提供網(wǎng)站制作、成都做網(wǎng)站,網(wǎng)頁設(shè)計,網(wǎng)站制作(企業(yè)站、響應(yīng)式網(wǎng)站、電商門戶網(wǎng)站)等服務(wù),從網(wǎng)站深度策劃、搜索引擎友好度優(yōu)化到用戶體驗的提升,我們力求做到極致!索引器允許類或結(jié)構(gòu)的實例就像數(shù)組一樣進行索引。
二、索引器使用
索引器經(jīng)常是在主要用于封裝內(nèi)部集合或數(shù)組的類型中實現(xiàn)的。
C# 并不將索引類型限制為整數(shù)
三、接口索引器與類索引器的區(qū)別:
接口訪問器不使用修飾符。
接口訪問器沒有體。
四、索引器與屬性的區(qū)別:
索引器與屬性類似。 除下表中顯示的差別外,為屬性訪問器定義的所有規(guī)則同樣適用于索引器訪問器。
屬性 | 索引器 |
允許像調(diào)用公共數(shù)據(jù)成員一樣調(diào)用方法。 | 允許對一個對象本身使用數(shù)組表示法來訪問該對象內(nèi)部集合中的元素。 |
可通過簡單的名稱進行訪問。 | 可通過索引器進行訪問。 |
可以為靜態(tài)成員或?qū)嵗蓡T。 | 必須為實例成員。 |
屬性的 get 訪問器沒有參數(shù)。 | 索引器的 get 訪問器具有與索引器相同的形參表。 |
屬性的 set 訪問器包含隱式 value 參數(shù)。 | 除了值參數(shù)外,索引器的 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: }
創(chuàng)新互聯(lián)www.cdcxhl.cn,專業(yè)提供香港、美國云服務(wù)器,動態(tài)BGP最優(yōu)骨干路由自動選擇,持續(xù)穩(wěn)定高效的網(wǎng)絡(luò)助力業(yè)務(wù)部署。公司持有工信部辦法的idc、isp許可證, 機房獨有T級流量清洗系統(tǒng)配攻擊溯源,準確進行流量調(diào)度,確保服務(wù)器高可用性。佳節(jié)活動現(xiàn)已開啟,新人活動云服務(wù)器買多久送多久。