配列の特定の要素を返す2D配列のプロパティを記述することはできますか?私は配列が静的クラスに属しているため、インデクサーを探していないと確信しています。2D配列プロパティ
3
A
答えて
6
パラメータを持つプロパティが必要なように思えます。これは基本的にはインデクサです。ただし、C#で静的インデクサを記述することはできません。
もちろん、はになります。配列を返すプロパティを書くだけですが、カプセル化の理由からそうしたくないと思います。
もう1つの方法は、GetFoo(int x, int y)
とSetFoo(int x, int y, int value)
の方法を記述することです。
さらに別の方法として、配列の周りにラッパータイプを記述し、という属性をに設定することもできます。その後
public class Wrapper<T>
{
private readonly T[,] array;
public Wrapper(T[,] array)
{
this.array = array;
}
public T this[int x, int y]
{
return array[x, y];
}
public int Rows { get { return array.GetUpperBound(0); } }
public int Columns { get { return array.GetUpperBound(1); } }
}
:
public static class Foo
{
private static readonly int[,] data = ...;
// Could also cache the Wrapper and return the same one each time.
public static Wrapper<int> Data
{
get { return new Wrapper<int>(data); }
}
}
1
これはどういう意味ですか?
array[x][y]
ここで、xは行、yは列です。
0
たぶん、このようなものは
public string this[int x, int y]
{
get { return TextArray[x, y]; }
set { TextArray[x, y] = value; }
}
+0
問題は静的なクラスであるため、静的なメンバーでなければならないということです。 C#で静的インデクサを作成することはできません。 –
関連する問題
- 1. 2D配列の配列
- 2. 2D配列C#
- 3. ArrayIndexOutOfBoundsException 2d配列
- 4. 2D配列ループディスプレイ
- 5. 2D配列 -
- 6. 2D配列 - C -
- 7. CUDAの2D配列
- 8. スウィフトプレイグラウンドの2D配列
- 9. JSONと2D配列
- 10. PHPソート2D配列
- 11. Javaの2D配列?
- 12. 2D配列のチェスボード
- 13. 2D配列のセグメンテーションフォールトエラー
- 14. ファイル/プログラムスコープ内の2D配列
- 15. 小(ish)2d配列のセグメンテーションフォルト
- 16. memcopyと2dの配列
- 17. Objective Cの2D配列
- 18. アセンブリ内の2D配列
- 19. 2D配列に選択
- 20. 2dオブジェクト配列へのループ
- 21. 2D配列LinearSearch Sorted List
- 22. Pythonでの2D配列?
- 23. python 2d配列からdict
- 24. Objective Cの2D配列
- 25. 2D配列$ Index in AngularJS
- 26. 回転numpy 2D配列
- 27. Java 2d配列とバケットソート
- 28. 2dアレイのギザギザの配列
- 29. C++ 2D配列へのポインタ
- 30. C++ 2D配列のバグ
を?:あなたを取得できません多分ちょうど読み取り専用1、例えば - ラッパー型は、インデクサーを持つことができます質問、私たちはプロパティを介して配列を返すことができないと思った –