程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> C#銳利體驗(八)(2)

C#銳利體驗(八)(2)

編輯:關於C語言

下面是一個索引器的具體的應用例子,它對我們理解索引器的設計和應用很有幫助。

using System;
class BitArray
{
    int[] bits;
    int length;
    public BitArray(int length)
    {
        if (length < 0)
            throw new ArgumentException();
        bits = new int[((length - 1) >> 5) + 1];
        this.length = length;
    }
    public int Length
    {
        get { return length; }
    }
    public bool this[int index]
    {
        get
        {
            if (index < 0 || index >= length)
                throw new IndexOutOfRangeException();
            else
return (bits[index >> 5] & 1 << index) != 0;
        }
        set
        {
            if (index < 0 || index >= length)
                throw new IndexOutOfRangeException();
            else if(value)
                bits[index >> 5] |= 1 << index;
            else
                bits[index >> 5] &= ~(1 << index);
        }
    }
}
class Test
{
    static void Main()
    {
        BitArray Bits=new BitArray(10);
        for(int i=0;i<10;i++)
            Bits[i]=(i%2)==0;
            Console.Write(Bits[i]+" ");
}
}

編譯並運行程序可以得到下面的輸出:

True False True False True False True False True False

上面的程序通過索引器的使用為用戶提供了一個界面友好的bool數組,同時又大大降低了程序的存儲空間代價。索引器通常用於對象容器中為其內的對象提供友好的存取界面--這也是為什麼C#將方法包裝成索引器的原因所在。實際上,我們可以看到索引器在.Net Framework類庫中有大量的應用。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved