示範索引指標的用法(C#)
來源:互聯網
上載者:User
//蛙蛙推薦:示範索引指標的用法(C#)
// 本示範測試連續自然數中的質數的個數,質數就是除了1和它本身能整除為,不能被別人整除了.
// 不好意思,小時候數學學的不好,關於怎麼判斷質數的演算法我沒有理解透澈呢,不過這不影響你瞭解索引指標的建立和使用,大家誰懂,麻煩指點一下哦
// 注釋比較多,如果去除所有注釋,代碼還是很緊湊的,沒辦法,現在就得做一些很基礎的練習.
using System; //匯入命名空間
class BitArray //定義一個類BitArray
{
int[] bits; //定義一個int型數組
int length; //定義一個int變數,注意:沒有修飾符的變數預設是私人變數
public BitArray(int length) { //定義這個類的建構函式,在C#中用類的同名函數來做建構函式,在VB.NET用new關鍵字定義
if (length<0) throw new ArgumentException(); //如果長度小於0的話拋出一個ArgumentException異常
bits=new int[((length-1)>>5)+1]; //給bits數組賦值,並把length減去1向右移位5最後再加1
this.length=length; //用參數length為私人變數length賦值,注意this關鍵字的用法,這裡表示正在引用的類,也就是class BitArray,this還有別的用法
}
public int Length { //設定一個唯讀屬性,
get { return length; } //屬性返回私人變數length的值,注意大小寫哦,呱呱.
}
public bool this[int index] { //構建一個可讀寫索引指標
get { //設定get指標
if (index<0 || index>=length) { //如果傳遞的索引值小於0或者大於數組邊界的話引發一個IndexOutOfRangeException異常
throw new IndexOutOfRangeException();
}
return (bits[index>>5]&1<<index)!=0; //,如果是質數就返回1,如果不是質數就返回1,不要問我這個位演算法和質數的關係哦,我可不懂位和彙編等底層的東西.
}
set { //設定set指標
if (index<0 || index>=length) { //和get訪問起一樣,先檢查輸入的索引是否在合適的範圍內,在實際編程中應該也有責任做這些潛在的錯誤處理,這能增強程式的健壯性
throw new IndexOutOfRangeException();
}
if (value) {