DataGridView, par exemple, vous permet de faire ceci:
DataGridView dgv = ...;
DataGridViewCell cell = dgv[1,5];
mais pour la vie de moi, je ne trouve pas la documentation sur l'opérateur d'index / crochet. Comment s'appellent-ils? Où est-il mis en œuvre? Peut-il lancer? Comment puis-je faire la même chose dans mes propres cours?
ETA: Merci pour toutes les réponses rapides. En bref: la documentation pertinente se trouve sous la propriété "Item"; la façon de surcharger est de déclarer une propriété comme public object this[int x, int y]{ get{...}; set{...} }
; l'indexeur pour DataGridView ne lance pas, du moins selon la documentation. Il ne mentionne pas ce qui se passe si vous fournissez des coordonnées invalides.
ETA Encore une fois: OK, même si la documentation n'en fait pas mention (méchant Microsoft!), Il s'avère que l'indexeur pour DataGridView lèvera en fait une ArgumentOutOfRangeException si vous lui fournissez des coordonnées invalides. Avertissement juste.
Ce serait la propriété de l'élément: http://msdn.microsoft.com/en-us/library/0ebtbkkc.aspx
Peut-être que quelque chose comme ça fonctionnerait:
la source
Source d'information
Pour support:
MAIS
L'opérateur d'indexation de tableau ne peut pas être surchargé ; cependant, les types peuvent définir des indexeurs, des propriétés qui prennent un ou plusieurs paramètres. Les paramètres d'indexeur sont placés entre crochets, tout comme les indices de tableau, mais les paramètres d'indexeur peuvent être déclarés de n'importe quel type (contrairement aux indices de tableau, qui doivent être intégrés).
Depuis MSDN
la source
Si vous utilisez C # 6 ou une version ultérieure, vous pouvez utiliser une syntaxe avec expression pour l'indexeur get-only:
public object this[int i] => this.InnerList[i];
la source
la source
new
mot - clé.Pour CLI C ++ (compilé avec / clr), consultez ce lien MSDN .
En bref, une propriété peut être nommée "par défaut":
la source
Voici un exemple renvoyant une valeur à partir d'un objet List interne. Devrait vous donner l'idée.
la source
Si vous voulez dire l'indexeur de tableaux, vous le surchargez simplement en écrivant une propriété d'indexeur.
la source