Maison > développement back-end > C++ > Comment puis-je surcharger l'opérateur Square-Bracket en C# ?

Comment puis-je surcharger l'opérateur Square-Bracket en C# ?

Susan Sarandon
Libérer: 2025-01-07 06:37:41
original
431 Les gens l'ont consulté

How Can I Overload the Square-Bracket Operator in C#?

Surcharge de l'opérateur carré entre crochets en C

En C#, l'opérateur entre crochets permet l'accès aux tableaux et la récupération de valeurs-clés à partir d'objets de type dictionnaire. Cependant, ces classes ne prennent pas en charge nativement la surcharge de l'opérateur crochet. La documentation de cette fonctionnalité est répertoriée sous la propriété "Item" dans la documentation C#.

Implémentation de l'indexeur

Pour surcharger l'opérateur crochet dans vos propres classes, vous pouvez déclarer un indexeur propriété. La syntaxe d'une propriété d'indexeur est :

public type this[arglist] { get; set; }
Copier après la connexion

Où :

  • type est le type de valeur renvoyé par l'indexeur.
  • arglist est une virgule- liste séparée de paramètres qui spécifient l'index de l'élément à récupérer ou à définir.

Par exemple, pour surchargez l'opérateur entre crochets pour un tableau à deux dimensions, vous pouvez déclarer une propriété d'indexeur comme suit :

public object this[int x, int y]
{
    get { return array[x, y]; }
    set { array[x, y] = value; }
}
Copier après la connexion

Limitations et exceptions

Il est important de noter que l'indexeur dans DataGridView la classe ne lève pas d'exception lorsque vous fournissez des coordonnées non valides. Cependant, il est possible de remplacer ce comportement en gérant explicitement les exceptions dans votre propre implémentation de la propriété indexeur.

Par exemple, pour lancer une ArgumentOutOfRangeException si les coordonnées fournies ne sont pas valides, vous pouvez implémenter la propriété indexeur comme suit :

public object this[int x, int y]
{
    get
    {
        if (x < 0 || x >= width)
        {
            throw new ArgumentOutOfRangeException("x");
        }
        if (y < 0 || y >= height)
        {
            throw new ArgumentOutOfRangeException("y");
        }

        return array[x, y];
    }

    set
    {
        if (x < 0 || x >= width)
        {
            throw new ArgumentOutOfRangeException("x");
        }
        if (y < 0 || y >= height)
        {
            throw new ArgumentOutOfRangeException("y");
        }

        array[x, y] = value;
    }
}
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal