差分
ナビゲーションに移動
検索に移動
ページの作成:「'''インデクサー'''(英:indexer)とは、C#に搭載されているユーザー定義型を配列のように扱えるようにする機構のこ...」
'''インデクサー'''(英:indexer)とは、[[C Sharp|C#]]に搭載されているユーザー定義型を配列のように扱えるようにする機構のことである。
[[C++]]における添字参照演算子([]演算子)のオーバーロードと似たようなもので、さらに取得(get)と設定(set)のそれぞれに別々のメソッドを割り当てれるようになったものと思って間違いない。
インデクサーの書式は[[プロパティー]]の書式に似ている。
記述例。
<source lang="csharp">
class Hoge {
private String[] _data = new String[5];
public String this [int index] {
get { return _data[index]; }
set { _data[index] = value; }
}
}
// var hoge = new Hoge();
// hoge[0] = "aaa";
// hoge[1] = "bbb";
</source>
[[C++]]の添字参照演算子([]演算子)のオーバーロードの例。
10年ぶりくらいにC++を書いた気がする。
もしかすると間違っているかもしれない。
<source lang="cpp">
#include <iostream>
#include <string>
using namespace std;
class Hoge {
private:
string _data[5];
public:
string& operator[](int index) {
return _data[index];
}
};
int main() {
Hoge hoge;
hoge[0] = "aaa";
cout << hoge[0] << endl;
return 0;
}
</source>
== 関連項目 ==
* [[プロパティー]]
* [[C Sharp|C#]]
== 参考文献 ==
<references/>
== 外部リンク ==
{{stub}}
[[C++]]における添字参照演算子([]演算子)のオーバーロードと似たようなもので、さらに取得(get)と設定(set)のそれぞれに別々のメソッドを割り当てれるようになったものと思って間違いない。
インデクサーの書式は[[プロパティー]]の書式に似ている。
記述例。
<source lang="csharp">
class Hoge {
private String[] _data = new String[5];
public String this [int index] {
get { return _data[index]; }
set { _data[index] = value; }
}
}
// var hoge = new Hoge();
// hoge[0] = "aaa";
// hoge[1] = "bbb";
</source>
[[C++]]の添字参照演算子([]演算子)のオーバーロードの例。
10年ぶりくらいにC++を書いた気がする。
もしかすると間違っているかもしれない。
<source lang="cpp">
#include <iostream>
#include <string>
using namespace std;
class Hoge {
private:
string _data[5];
public:
string& operator[](int index) {
return _data[index];
}
};
int main() {
Hoge hoge;
hoge[0] = "aaa";
cout << hoge[0] << endl;
return 0;
}
</source>
== 関連項目 ==
* [[プロパティー]]
* [[C Sharp|C#]]
== 参考文献 ==
<references/>
== 外部リンク ==
{{stub}}