C# では、角括弧演算子を使用して、配列アクセスと辞書のようなオブジェクトからのキー値の取得が可能になります。ただし、これらのクラスは、角括弧演算子のオーバーロードをネイティブにサポートしません。この機能のドキュメントは、C# ドキュメントの「Item」プロパティにリストされています。
独自のクラスで角括弧演算子をオーバーロードするには、インデクサーを宣言できます。財産。インデクサー プロパティの構文は次のとおりです。
public type this[arglist] { get; set; }
たとえば、2 次元配列の角かっこ演算子をオーバーロードするには、次のようにインデクサー プロパティを宣言できます。
public object this[int x, int y] { get { return array[x, y]; } set { array[x, y] = value; } }
無効な座標を指定した場合、DataGridView クラスのインデクサーは例外をスローしないことに注意することが重要です。ただし、インデクサー プロパティの独自の実装で例外を明示的に処理することで、この動作をオーバーライドすることは可能です。
たとえば、指定された座標が無効な場合に ArgumentOutOfRangeException をスローするには、次のようにインデクサー プロパティを実装します。 :
public object this[int x, int y] { get { if (x < 0 || x >= width) { throw new ArgumentOutOfRangeException("x"); } if (y < 0 || y >= height) { throw new ArgumentOutOfRangeException("y"); } return array[x, y]; } set { if (x < 0 || x >= width) { throw new ArgumentOutOfRangeException("x"); } if (y < 0 || y >= height) { throw new ArgumentOutOfRangeException("y"); } array[x, y] = value; } }
以上がC# で角括弧演算子をオーバーロードするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。