DataGridView, misalnya, memungkinkan Anda melakukan ini:
DataGridView dgv = ...;
DataGridViewCell cell = dgv[1,5];
tetapi untuk kehidupan saya, saya tidak dapat menemukan dokumentasi pada operator index / square-bracket. Mereka menyebutnya apa? Di mana itu diterapkan? Bisakah itu melempar? Bagaimana saya bisa melakukan hal yang sama di kelas saya sendiri?
ETA: Terima kasih atas semua jawaban cepatnya. Secara singkat: dokumentasi yang relevan berada di bawah properti "Item"; cara untuk membebani adalah dengan mendeklarasikan properti seperti public object this[int x, int y]{ get{...}; set{...} }
; pengindeks untuk DataGridView tidak melempar, setidaknya sesuai dengan dokumentasi. Tidak disebutkan apa yang terjadi jika Anda memberikan koordinat yang tidak valid.
ETA Sekali lagi: OK, meskipun dokumentasi tidak menyebutkannya (Microsoft nakal!), Ternyata pengindeks untuk DataGridView sebenarnya akan melempar ArgumentOutOfRangeException jika Anda menyediakannya dengan koordinat yang tidak valid. Peringatan yang adil.
sumber
Itu akan menjadi properti item: http://msdn.microsoft.com/en-us/library/0ebtbkkc.aspx
Mungkin sesuatu seperti ini akan berhasil:
sumber
Sumber informasinya
Untuk braket:
TAPI
Operator pengindeksan array tidak dapat kelebihan beban ; Namun, tipe dapat mendefinisikan pengindeks, properti yang mengambil satu atau lebih parameter. Parameter pengindeks terlampir dalam tanda kurung siku, sama seperti indeks larik, tetapi parameter pengindeks dapat dinyatakan dari jenis apa pun (tidak seperti indeks larik, yang harus integral).
Dari MSDN
sumber
Jika Anda menggunakan C # 6 atau lebih baru, Anda bisa menggunakan sintaks bertubuh ekspresi untuk pengindeks get-only:
public object this[int i] => this.InnerList[i];
sumber
sumber
new
kata kunci.Untuk CLI C ++ (dikompilasi dengan / clr) lihat tautan MSDN ini .
Singkatnya, sebuah properti dapat diberi nama "default":
sumber
Berikut adalah contoh mengembalikan nilai dari objek Daftar internal. Harus memberi Anda ide.
sumber
Jika maksud Anda adalah pengindeks array, Anda kelebihan itu hanya dengan menulis properti pengindeks .. Dan Anda dapat membebani, (tulis sebanyak yang Anda inginkan) properti pengindeksan asalkan masing-masing memiliki parameter tanda tangan yang berbeda
sumber