Na przykład DataGridView pozwala to zrobić:
DataGridView dgv = ...;
DataGridViewCell cell = dgv[1,5];
ale przez całe życie nie mogę znaleźć dokumentacji operatora indeksu / nawiasu kwadratowego. Jak oni to nazywają? Gdzie to jest realizowane? Czy to może rzucić? Jak mogę zrobić to samo na własnych zajęciach?
ETA: Dzięki za wszystkie szybkie odpowiedzi. W skrócie: odpowiednia dokumentacja należy do właściwości „Przedmiot”; sposobem na przeciążenie jest zadeklarowanie właściwości takiej jak public object this[int x, int y]{ get{...}; set{...} }
; moduł indeksujący dla DataGridView nie zgłasza, przynajmniej zgodnie z dokumentacją. Nie wspomina o tym, co się stanie, jeśli podasz nieprawidłowe współrzędne.
ETA Znowu: OK, chociaż dokumentacja nie wspomina o tym (niegrzeczny Microsoft!), Okazuje się, że indeksator DataGridView w rzeczywistości wyrzuci ArgumentOutOfRangeException, jeśli podasz mu nieprawidłowe współrzędne. Uczciwe ostrzeżenie.
źródło
To byłaby właściwość elementu: http://msdn.microsoft.com/en-us/library/0ebtbkkc.aspx
Może coś takiego działałoby:
źródło
Źródło informacji
Do wspornika:
ALE
Operatora indeksowania tablic nie można przeciążać ; jednak typy mogą definiować indeksatory, właściwości, które przyjmują jeden lub więcej parametrów. Parametry indeksatora są ujęte w nawiasy kwadratowe, podobnie jak indeksy tablicowe, ale parametry indeksatora można zadeklarować jako dowolnego typu (w przeciwieństwie do indeksów tablicowych, które muszą być integralne).
Z MSDN
źródło
Jeśli używasz C # 6 lub nowszej wersji, możesz użyć składni wyrażającej treści dla indeksatora get-only:
public object this[int i] => this.InnerList[i];
źródło
źródło
new
słowem kluczowym.W przypadku CLI C ++ (skompilowanego z / clr) zobacz to łącze MSDN .
Krótko mówiąc, właściwość może otrzymać nazwę „default”:
źródło
Oto przykład zwracający wartość z wewnętrznego obiektu List. Powinien dać ci pomysł.
źródło
Jeśli masz na myśli indeksatora tablic, przeciążasz go, pisząc właściwość indeksatora. I możesz przeciążać (zapisywać tyle, ile chcesz) właściwości indeksatora, o ile każda z nich ma inną sygnaturę parametru
źródło