「C Sharp/インデクサー」の版間の差分

imported>Administrator
編集の要約なし
 
(他の1人の利用者による、間の6版が非表示)
1行目: 1行目:
'''インデクサー'''(英:indexer)とは、[[C Sharp|C#]]に搭載されているユーザー定義型を配列のように扱えるようにする機構のことである。
[[C Sharp|C#]]における'''インデクサー'''(英:indexer)とは、ユーザー定義型をまるで[[配列]]のように扱えるようにする機構のことである。


[[C++]]における添字参照演算子([]演算子)のオーバーロードと似たようなもので、さらに取得(get)と設定(set)のそれぞれに別々のメソッドを割り当てれるようになったものと思って間違いない。
インデクサーは[[C++]]における[[添字参照演算子]]([]演算子)の[[オーバーロード]]と似たようなものであり、さらに取得(get)と設定(set)のそれぞれに別々の[[メソッド]]を割り当てれ、かつgetとsetのそれぞれに[[アクセシビリティレベル]](publicやprivateなど。[[アクセスレベル]]と略されることが多い)も指定できるようになったものと思ってほぼ間違いない。


インデクサーの書式は[[プロパティー]]の書式に似ている。
== 記述例 ==
 
[[C Sharp|C#]]におけるインデクサーの書式は[[プロパティー]]の書式に非常に似ている。
記述例。
<source lang="csharp">
<source lang="csharp">
// C#によるインデクサーの記述例
class Hoge {
class Hoge {


12行目: 12行目:


     public String this [int index] {
     public String this [int index] {
         get { return _data[index]; }
        // アクセスレベルを指定しないとpublicになる。
         set { _data[index] = value; }
         get {  
            return _data[index];  
        }
         // アクセスレベルはinternal(同一アセンブリまで公開)
        internal set {  
            _data[index] = value;  
        }
     }
     }
}
}


//上記クラスは以下のような感じで配列のように扱えるようになる。
// var hoge = new Hoge();
// var hoge = new Hoge();
// hoge[0] = "aaa";
// hoge[0] = "aaa";
22行目: 29行目:
</source>
</source>


[[C++]]の添字参照演算子([]演算子)のオーバーロードの例。
=== 参考:C++における添字参照演算子([]演算子)のオーバーロードの例 ===
10年ぶりくらいにC++を書いた気がする。
[[C Sharp|C#]]のインデクサーに似ていると言われる[[C++]]における[[添字参照演算子]]([]演算子)の[[オーバーロード]]の例。
もしかすると間違っているかもしれない。
10年ぶりくらいに[[C++]]を書いた気がする。
もしかするとこの[[ソースコード]]は間違っているかもしれない。
<source lang="cpp">
<source lang="cpp">
#include <iostream>
#include <iostream>
48行目: 56行目:


== 関連項目 ==
== 関連項目 ==
* [[スライス]]
* [[プロパティー]]
* [[プロパティー]]
* [[アクセサー・メソッド]]
* [[C Sharp|C#]]
* [[C Sharp|C#]]
== 参考文献 ==
== 参考文献 ==
<references/>
{{reflist}}
== 外部リンク ==


{{stub}}
{{stub}}