O DataGridView, por exemplo, permite fazer isso:
DataGridView dgv = ...;
DataGridViewCell cell = dgv[1,5];
mas, durante toda a minha vida, não consigo encontrar a documentação no operador de índice / colchete. Como eles chamam? Onde é implementado? Ele pode jogar? Como posso fazer a mesma coisa nas minhas próprias aulas?
ETA: Obrigado por todas as respostas rápidas. Resumidamente: a documentação relevante está na propriedade "Item"; a maneira de sobrecarregar é declarar uma propriedade como public object this[int x, int y]{ get{...}; set{...} }
; o indexador para DataGridView não lança, pelo menos de acordo com a documentação. Ele não menciona o que acontece se você fornecer coordenadas inválidas.
ETA Novamente: OK, mesmo que a documentação não faça menção a isso (Microsoft impertinente!), Acontece que o indexador do DataGridView lançará de fato uma ArgumentOutOfRangeException se você fornecer coordenadas inválidas. Aviso justo.
fonte
Essa seria a propriedade do item: http://msdn.microsoft.com/en-us/library/0ebtbkkc.aspx
Talvez algo assim funcione:
fonte
Fonte da informação
Para suporte:
MAS
O operador de indexação da matriz não pode ser sobrecarregado ; no entanto, os tipos podem definir indexadores, propriedades que usam um ou mais parâmetros. Os parâmetros do indexador são colocados entre colchetes, assim como os índices da matriz, mas os parâmetros do indexador podem ser declarados como sendo de qualquer tipo (diferentemente dos índices da matriz, que devem ser integrais).
Do MSDN
fonte
Se você estiver usando o C # 6 ou posterior, poderá usar a sintaxe de expressão para o indexador de get-only:
public object this[int i] => this.InnerList[i];
fonte
fonte
new
palavra - chave.Para CLI C ++ (compilado com / clr), consulte este link do MSDN .
Em resumo, uma propriedade pode receber o nome "padrão":
fonte
Aqui está um exemplo retornando um valor de um objeto interno da Lista. Deve lhe dar a idéia.
fonte
Se você quer dizer o indexador da matriz, você sobrecarrega isso apenas escrevendo uma propriedade do indexador. E você pode sobrecarregar (escrever quantas quiser) as propriedades do indexador, desde que cada uma tenha uma assinatura de parâmetro diferente
fonte