メインメニューを開く

差分

C Sharp/インデクサー

854 バイト追加, 2014年1月18日 (土) 15:30
編集の要約なし
[[C Sharp|C#]]における'''インデクサー'''(英:indexer)とは、(英:indexer)とは、ユーザー定義型をまるで[[C Sharp|C#配列]]に搭載されているユーザー定義型を配列のように扱えるようにする機構のことである。のように扱えるようにする機構のことである。
インデクサーは[[C++]]における添字参照演算子(における[[添字参照演算子]]([]演算子)の[[オーバーロード]]と似たようなものであり、さらに取得(get)と設定(set)のそれぞれに別々の[[メソッド]]を割り当てれ、かつgetとsetのそれぞれに[[アクセシビリティレベル]](publicやprivateなど。[[アクセスレベル]]演算子)のオーバーロードと似たようなもので、さらに取得(get)と設定(set)のそれぞれに別々のメソッドを割り当てれるようになったものと思って間違いない。と略されることが多い)も指定できるようになったものと思ってほぼ間違いない。
インデクサーの書式は== 記述例 ==[[C Sharp|C#]]におけるインデクサーの書式は[[プロパティー]]の書式に似ている。 記述例。の書式に非常に似ている。
<source lang="csharp">
// C#によるインデクサーの記述例
class Hoge {
public String this [int index] {
// アクセスレベルを指定しないとpublicになる。 get { return _data[index]; } // アクセスレベルはinternal(同一アセンブリまで公開) internal set { _data[index] = value; }
}
}
//上記クラスは以下のような感じで配列のように扱えるようになる。
// var hoge = new Hoge();
// hoge[0] = "aaa";
</source>
=== 参考:C++における添字参照演算子([]演算子)のオーバーロードの例 ===[[C Sharp|C#]]のインデクサーに似ていると言われる[[C++]]の添字参照演算子(における[[添字参照演算子]]([]演算子)の[[オーバーロード]演算子)のオーバーロードの例。]の例。10年ぶりくらいにC10年ぶりくらいに[[C++]]を書いた気がする。もしかすると間違っているかもしれない。もしかするとこの[[ソースコード]]は間違っているかもしれない。
<source lang="cpp">
#include <iostream>
== 関連項目 ==
* [[スライス]]
* [[プロパティー]]
* [[アクセサー・メソッド]]
* [[C Sharp|C#]]
 
== 参考文献 ==
<references/>== 外部リンク =={{reflist}}
{{stub}}
匿名利用者