Comment surcharger les opérateurs en C# ?

王林
Libérer: 2023-09-04 09:13:02
avant
936 Les gens l'ont consulté

如何重载 C# 中的运算符?

L'opérateur [] est appelé indexeur.

Les indexeurs permettent l'indexation d'objets, tels que des tableaux. Lorsque vous définissez un indexeur pour une classe, la classe se comporte comme un tableau virtuel. Vous pouvez ensuite accéder aux instances de cette classe à l'aide de l'opérateur d'accès au tableau ([ ]).

Les indexeurs peuvent être surchargés. Les indexeurs peuvent également déclarer plusieurs paramètres, et chaque paramètre peut être d'un type différent. L'index ne doit pas nécessairement être un nombre entier.

Exemple 1

static void Main(string[] args){
   IndexerClass Team = new IndexerClass();
   Team[0] = "A";
   Team[1] = "B";
   Team[2] = "C";
   Team[3] = "D";
   Team[4] = "E";
   Team[5] = "F";
   Team[6] = "G";
   Team[7] = "H";
   Team[8] = "I";
   Team[9] = "J";
   for (int i = 0; i < 10; i++){
      Console.WriteLine(Team[i]);
   }
   Console.ReadLine();
}
class IndexerClass{
   private string[] names = new string[10];
   public string this[int i]{
      get{
         return names[i];
      } set {
         names[i] = value;
      }
   }
}
Copier après la connexion

Sortie

A
B
C
D
E
F
G
H
I
J
Copier après la connexion

Exemple 2

Réécriture []

static class Program{
   static void Main(string[] args){
      IndexerClass Team = new IndexerClass();
      Team[0] = "A";
      Team[1] = "B";
      Team[2] = "C";
      for (int i = 0; i < 10; i++){
         Console.WriteLine(Team[i]);
      }
      System.Console.WriteLine(Team["C"]);
      Console.ReadLine();
   }
}
class IndexerClass{
   private string[] names = new string[10];
   public string this[int i]{
      get{
         return names[i];
      }
      set{
         names[i] = value;
      }
   }
   public string this[string i]{
      get{
         return names.Where(x => x == i).FirstOrDefault();
      }
   }
}
Copier après la connexion

Sortie

A
B
C
C
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:tutorialspoint.com
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal