原始碼均在文末位址給出。
有時候需要對陣列的資料進行封裝控制,該怎麼處理陣列資料呢?設定陣列的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 索引符允許過...