C 陣列GetSet索引器分析

2021-08-13 02:04:10 字數 1614 閱讀 3444

原始碼均在文末位址給出。

有時候需要對陣列的資料進行封裝控制,該怎麼處理陣列資料呢?設定陣列的getset方法還是弄乙個索引器來進行控制。接下來進行分別測試。

c#中的屬性,是對類內部的字段進行進一步的封裝控制,安全性考慮。通過屬性設定可以控制欄位的讀寫控制,以及內部的進一步特殊處理。(如非法字元處理 越界處理等)

屬性的定義:

訪問修飾符 返回型別 屬性名

{ get{語句集合}

set{語句集合}

}如學生類中姓名字段

public

class student

set }}

class program

}

class

test

//set

// }

}class

program

; = arr;//會呼叫屬性的set方法

t.ids[1] = 1;//正常訪問陣列 呼叫屬性的get方法 返回物件給t.ids

//跟下標無關 下標賦值是陣列自己的功能

for (int i = 0; i < t.ids.length; i++)

console.read();

}}

索引器用於以更便捷的方式訪問物件中包含的成員陣列或集合。所謂索引器就是一類特殊的屬性,通過它們你就可以像引用陣列一樣引用自己的類。

索引器結構

訪問修飾符 返回型別 this[引數型別 引數…]

{ get{語句集合}

set{語句集合}

} 索引器使得物件可按照與陣列相似的方法進行索引。

this 關鍵字用於定義索引器。

get 訪問器返回值。set 訪問器分配值。

value 關鍵字用於定義由 set 索引器分配的值。

索引器不必根據整數值進行索引,由你決定如何定義特定的查詢機制。

class test

set

}} static

void main(string args)

; t[2]=6;//索引器訪問陣列

for (int i = 0; i < t.ids.length; i++)

console.read();

}

索引器還支援進行多個引數,可以進行不同的過載 在此不做分析了

public

class student

set

}public

student(string str)

public

student()

private listliststudents = new list();

public listliststudents

set}

////// 構建索引器

//////

///public student this[int i]

set }}

class program

}}

例項源**

github位址

C 索引器 索引器與陣列屬性的比較

索引器 indexer 索引器允許類或結構的例項按照與資料相同的方式進行索引。索引器類似於屬性,不同之處在於它們的訪問器採用引數。所以索引器也被稱為有參屬性。示例一 using system class arrclass 沒有索引器的類 public string name class indexc...

c 陣列賦初值 C 物件導向 索引器

索引器 封裝了類的私有陣列的操作,沒有名字 定義索引器的格式 public 陣列中元素的資料型別 關鍵字 this 下標 get 根據下標獲取陣列中該下標所對應的元素 先判斷下標是否越界 if 下標 私有陣列元素的個數 throw new indexoutofrangeexception 陣列越界 ...

C 索引符 索引器

索引符或叫索引器,是將類或結構的例項轉為數租,按陣列的方式設定和獲取元素值 索引符可以看做運算子的過載。索引符常用於表示某些資料結構的類 陣列 列表和對映等,並可以在.net基類中定義這些結構體。也可用於引用型別的轉換。索引符和陣列比較 1 索引符的索引值 index 型別不受限制 2 索引符允許過...