< プロパティ | ボクシング >

July 17, 2008

インデクサ

プロパティと似た機能でインデクサというものがある。クラスを配列として扱うことができる。
class Rainbow
{
    private string[] sColors;
    public Rainbow () { sColors = new string [] { "赤", "橙", "黄", "緑", "青", "藍", "紫" }; }
    public string this [int index]  // インデクサ宣言子
    {
        get { return sColors [index]; }             // 取得用のアクセサ
        set { sColors [index] = value; }            // 設定用のアクセサ
    }
    public int Length
    {
        get { return sColors.Length; }
    }
    static void Main ()
    {
        Rainbow rainbow = new Rainbow ();
        rainbow [1] = "orange";                     // set が呼び出される
        for (int i = 0; i < rainbow.Length; i ++)
            System.Console.WriteLine (rainbow [i]); // get が呼び出される
    }
}
こちらも set アクセサには暗黙の引数として value が渡される。代入された右辺値である。

トラックバック

このエントリーにトラックバック:
http://frog.raindrop.jp/cgi-bin/mt/mt-tb.cgi/2134

コメント

コメントする

※ コメントスパム対策のため、コメント本文はおはよう、こんにちわ、こんばんわのいずれかより始めるようにしてください。

name:
email:

※ 必要ですが、表示しません。

url:
情報を保存する ?