示範索引指標的用法(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) {
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.