Classes imbriquées en C#

Luqman Khan 15 février 2024
  1. Classes imbriquées en C#
  2. Raisons d’utiliser des classes imbriquées en C#
  3. Implémenter des classes imbriquées en C#
Classes imbriquées en C#

Ce didacticiel présentera les classes imbriquées dans le langage de programmation C#.

Une classe est un plan ou un modèle défini par l’utilisateur et utilisé pour construire des choses. Il s’agit d’une instance unique qui combine des méthodes et des champs (fonctions membres qui définissent des actions).

Classes imbriquées en C#

En C#, un utilisateur peut définir une classe à l’intérieur d’une autre, appelée classes imbriquées. Son objectif principal est de limiter la portée de la classe imbriquée.

Par rapport aux classes régulières, les classes imbriquées offrent la possibilité supplémentaire de modificateurs privés et de protection. Si vous avez seulement besoin d’invoquer cette classe depuis le contexte de la classe parente, c’est généralement une excellente idée de la définir comme une classe imbriquée.

Supposons que cette classe sera utilisée en dehors de la bibliothèque. Il est généralement plus accessible pour l’utilisateur de le définir comme une classe distincte de même niveau, que les deux classes aient ou non une relation conceptuelle.

Même s’il est techniquement faisable de construire une classe publique imbriquée dans une classe parente publique, c’est rarement une bonne idée.

Raisons d’utiliser des classes imbriquées en C#

Il existe plusieurs bonnes raisons d’utiliser des classes imbriquées.

  • C’est une technique pratique de regroupement de classes utilisée une seule fois.
  • L’encapsulation est améliorée.
  • Les classes imbriquées peuvent faciliter la lecture et la maintenance du code.
  • Il facilite le regroupement logique des classes.

Si une classe n’a de valeur que pour une autre classe, il est logique de l’inclure dans cette classe pour garder les deux ensemble. Il est plus simplifié en imbriquant de telles classes d’assistance.

En plus des modificateurs d’accès publics et internes, une classe imbriquée peut inclure des modificateurs d’accès internes privés et protégés.

Il y a des occasions où l’implémentation d’une interface renvoyée depuis l’intérieur de la classe est bénéfique. Pourtant, la mise en œuvre de cette interface devrait être entièrement cachée du monde extérieur.

Par exemple, avant que yield ne soit introduit dans C#, nous avons intégré l’implémentation de l’énumérateur dans une collection en tant que classe privée pour les construire. Les membres de la collection auraient un accès simple, mais le monde extérieur n’aurait pas besoin ou ne verrait pas les subtilités de la façon dont cela est fait.

Implémenter des classes imbriquées en C#

Vous trouverez ci-dessous le code illustrant le concept de classe imbriquée.

La classe Programme est la classe principale du programme, qui a une méthode principale statique publique. Nous avons créé la classe extérieure Outside_class en tant que public et une autre classe à l’intérieur nommée Inside_class en tant que public.

De plus, nous avons créé deux méthodes : à l’intérieur de la Outside_class et une autre à l’intérieur de la Inside_class. On ne peut pas accéder aux méthodes Inside_class à partir des objets Outside_class.

Pour accéder à la méthode à l’intérieur de this, nous devons créer une instance de la Inside_class.

using System;

public class Program {
  public static void Main(string[] args) {
    // create instance of outside class
    Outside_class outinstance = new Outside_class();
    outinstance.outerclassmethod();
    // you can't access inside class methods from outside class objects
    // create instance of inside class
    Outside_class.Inside_class insideinstance = new Outside_class.Inside_class();
    // accessing the method of inside class.
    insideinstance.insideclassmethod();
    Console.Read();
  }
}
public class Outside_class {
  // Method of outside class
  public void outerclassmethod() {
    Console.WriteLine("here is Outside class method");
  }
  // Inner class
  public class Inside_class {
    // Method of inside class
    public void insideclassmethod() {
      Console.WriteLine("here is Inside class Method");
    }
  }
}

Vous trouverez ci-dessous une image du code utilisant des classes imbriquées avec une sortie.

coder les classes imbriquées

Il est déjà clair que les classes imbriquées rendent notre code facilement lisible. Nous pouvons rassembler toutes ces classes utilisées les unes avec les autres.

Article connexe - Csharp Class