DataGridView, por ejemplo, le permite hacer esto:
DataGridView dgv = ...;
DataGridViewCell cell = dgv[1,5];
pero por mi vida no puedo encontrar la documentación sobre el operador de índice / corchete. ¿Cómo lo llaman? ¿Dónde se implementa? Puede lanzar? ¿Cómo puedo hacer lo mismo en mis propias clases?
ETA: Gracias por todas las respuestas rápidas. Brevemente: la documentación relevante se encuentra bajo la propiedad "Artículo"; la forma de sobrecargar es declarando una propiedad como public object this[int x, int y]{ get{...}; set{...} }
; el indexador para DataGridView no se lanza, al menos de acuerdo con la documentación. No menciona lo que sucede si proporciona coordenadas no válidas.
ETA nuevamente: OK, aunque la documentación no lo menciona (¡travieso Microsoft!), Resulta que el indexador para DataGridView de hecho arrojará una ArgumentOutOfRangeException si le proporciona coordenadas no válidas. Advertencia justa.
fuente
Esa sería la propiedad del elemento: http://msdn.microsoft.com/en-us/library/0ebtbkkc.aspx
Tal vez algo como esto funcionaría:
fuente
Fuente de la información
Para soporte:
PERO
El operador de indexación de matriz no se puede sobrecargar ; sin embargo, los tipos pueden definir indexadores, propiedades que toman uno o más parámetros. Los parámetros del indexador están encerrados entre corchetes, al igual que los índices de matriz, pero los parámetros de indexación pueden declararse de cualquier tipo (a diferencia de los índices de matriz, que deben ser integrales).
De MSDN
fuente
Si está utilizando C # 6 o posterior, puede usar la sintaxis con cuerpo de expresión para el indexador get-only:
public object this[int i] => this.InnerList[i];
fuente
fuente
new
palabra clave.Para CLI C ++ (compilado con / clr) vea este enlace de MSDN .
En resumen, a una propiedad se le puede dar el nombre "predeterminado":
fuente
Aquí hay un ejemplo que devuelve un valor de un objeto List interno. Debería darte la idea.
fuente
Si te refieres al indexador de matrices, lo sobrecargas con solo escribir una propiedad del indexador ... Y puedes sobrecargar, (escribe tantas como quieras) propiedades del indexador siempre que cada una tenga una firma de parámetro diferente
fuente