Modificateurs d'accès (spécificateurs) en C# avec exemples de programme

⚡ Résumé intelligent

En C#, les modificateurs d'accès sont des mots-clés qui définissent la visibilité d'une classe, d'une propriété ou d'une méthode, limitant ainsi les programmes externes pouvant y accéder. Les constructeurs initialisent automatiquement les valeurs des champs lors de la création d'un objet de la classe.

  • (I.e. Privé: Le modificateur d'accès privé limite un membre à sa propre classe, bloquant l'accès depuis tout programme externe.
  • 🌐 Publique: Le modificateur d'accès public expose une propriété ou une méthode à tout programme externe sans restriction.
  • 🛡️ Protégé: Le modificateur d'accès protégé ne partage les membres qu'avec les classes héritées de la classe actuelle.
  • 📦 Interne: Le modificateur d'accès interne autorise l'accès au sein du même assembly, mais pas à partir d'un programme externe.
  • ???? Constructeur: Un constructeur partage le nom de la classe, ne prend aucun type de retour et initialise les champs lors de la création d'un objet.
  • 🤖 Aide à l'IA : GitHub Copilot génère les modificateurs et les constructeurs, tandis que ML.NET associe les propriétés de classe aux fonctionnalités du modèle.

Modificateurs d'accès (spécificateurs) en C#

Qu’est-ce que le modificateur d’accès (spécificateur) en C# ?

Modificateurs d'accès En C#, les spécificateurs d'accès sont des mots-clés permettant de définir la visibilité d'une propriété ou d'une méthode de classe. Ils servent à empêcher d'autres programmes d'accéder aux propriétés ou méthodes d'une classe. Les modificateurs d'accès restreignent l'accès afin que les autres programmes ne puissent pas consulter les propriétés ou méthodes d'une classe.

Il existe 6 types de modificateurs d'accès en C# :

  • Privé mode
  • Public mode
  • Protégé
  • Interne
  • Protégé interne
  • Privé Protégé

Nous découvrirons les principaux modificateurs d'accès en C# avec des exemples de programmes comme expliqué ci-dessous.

Modificateurs d'accès privé en C#

Lorsque le modificateur d'accès privé est attaché à une propriété ou à une méthode, cela signifie que ces membres ne sont accessibles à partir d'aucun programme externe.

Exemple de modificateur d'accès privé

Prenons un exemple et voyons ce qui se passe lorsque nous utilisons le modificateur d'accès privé.

Modifions le code actuel dans notre fichier Tutorial.cs. Dans la méthode SetTutorial, changeons le mot-clé public en private.

Modificateurs d'accès privé

Passons maintenant à notre fichier Program.cs. Vous remarquerez qu'il y a une ligne ondulée rouge sous la méthode SetTutorial.

Puisque nous avons maintenant déclaré la méthode SetTutorial comme privée dans notre classe Tutorial, Visual Studio l'a détecté. Il a informé l'utilisateur en le soulignant que désormais cette méthode ne fonctionnera plus à partir du fichier Program.cs.

Modificateur d'accès privé

Modificateurs d'accès public C#

Lorsque le modificateur d'accès public est attaché à une propriété ou à une méthode, cela signifie que ces membres sont accessibles à partir de n'importe quel programme externe. Nous l’avons déjà vu dans nos exemples précédents.

Exemple de modificateur d'accès public

Modificateurs d'accès public C#

Puisque nous avons défini nos méthodes comme publiques dans la classe Tutorial, elles sont accessibles à partir du fichier Program.cs.

Modificateurs d'accès protégés en C#

Lorsque le modificateur d'accès protégé est attaché à une propriété ou à une méthode, cela signifie que ces membres ne sont accessibles que par classes héritées du courant classe. Ceci sera expliqué plus en détail dans la classe Héritage.

Modificateurs d'accès internes C#

Lorsqu'un modificateur d'accès interne est attaché à une propriété ou à une méthode, ces membres ne sont accessibles que par un programme interne mais pas par un programme externe.

Constructeur C#

C# Les constructeurs sont utilisés pour initialiser les valeurs des champs de classe lorsque leurs objets correspondants sont créés. Un constructeur est une méthode qui porte le même nom que celui de la classe. Si un constructeur est défini dans une classe, il fournira alors la première méthode appelée lors de la création d'un objet. Supposons que nous ayons une classe appelée Employee. La méthode constructeur serait également nommée Employee().

Les éléments clés suivants doivent être notés concernant les méthodes de constructeur

  1. Le modificateur d'accès par défaut C# pour le constructeur doit être rendu public.
  2. Il ne devrait y avoir aucun type de retour pour la méthode constructeur.

Exemple de constructeur C#

Voyons maintenant comment intégrer l'utilisateur des constructeurs dans notre code. Nous utiliserons des constructeurs pour initialiser les champs TutorialID et TutorialName avec certaines valeurs par défaut lors de la création de l'objet.

Étape 1) La première étape consiste à créer le constructeur de notre classe Tutorial. Dans cette étape, nous ajoutons le code ci-dessous au fichier Tutorial.cs.

Constructeur C#

Code Explication:-

  1. On ajoute d'abord une nouvelle méthode qui porte le même nom que celui de la classe. Comme il s’agit du même nom que la classe, C# le traite comme une méthode constructeur. Ainsi, chaque fois que la méthode appelante crée un objet de cette classe, cette méthode sera appelée par défaut.
  2. Dans le constructeur Tutorial, nous définissons la valeur de TutorialID sur 0 et TutorialName sur « Default ». Ainsi, chaque fois qu'un objet est créé, ces champs auront toujours ces valeurs par défaut.

Passons maintenant à notre fichier Program.cs et supprimons simplement la ligne qui appelle la méthode SetTutorial. C'est parce que nous voulons simplement voir comment fonctionne le constructeur.

Constructeur C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DemoApplication
{
 class Tutorial
 {
  public int TutorialID; 
  public string TutorialName;
  
  public Tutorial()
  {
   TutorialID=0;
   TutorialName="Default";
  }
  public void SetTutorial(int pID,string pName) 
  {
   TutorialID=pID;
   TutorialName=pName;
  }
  public String GetTutorial()
  {
   return TutorialName;
  }
  
  static void Main(string[] args) 
  {
   Tutorial pTutor=new Tutorial();
    
   Console.WriteLine(pTutor.GetTutorial());
    
   Console.ReadKey(); 
  }
 }
}

Code Explication:-

  1. La première étape consiste à créer un objet pour la classe Tutorial. Cela se fait via le mot-clé 'new'.
  2. Nous utilisons la méthode GetTutorial de la classe Tutorial pour obtenir le TutorialName. Ceci est ensuite affiché sur la console via la méthode Console.WriteLine.

Si le code ci-dessus est saisi correctement et que le programme est exécuté, la sortie suivante sera affichée.

Sortie :

Constructeur C#

À partir de la sortie, nous pouvons voir que le constructeur a bien été appelé et que la valeur de TutorialName a été définie sur « Default ».

À noter: Ici, la valeur « par défaut » est récupérée auprès du constructeur.

FAQ

Si aucun modificateur n'est spécifié, les membres de classe et de structure sont par défaut privés et les types de niveau supérieur sont internes, restant cachés jusqu'à ce que vous élargissiez leur visibilité.

L'attribut Protected expose un membre à la même classe et à toutes ses classes dérivées, même entre différents assemblys. L'attribut Internal l'expose uniquement aux types présents dans le même assembly.

L'attribut `protected internal` autorise l'accès depuis le même assembly ou toute classe dérivée. L'attribut `private protected` est plus restrictif et n'autorise l'accès qu'aux classes dérivées du même assembly.

C# prend en charge les constructeurs par défaut, paramétrés, de copie, statiques et privés. Ils permettent d'initialiser les champs d'un objet, d'effectuer la configuration de la classe une seule fois ou de cloner les valeurs d'un autre objet.

Un constructeur statique ne prend ni modificateur ni paramètre. Il s'exécute une seule fois, avant la création du premier objet ou le chargement des membres statiques, et initialise les champs statiques.

Oui. Une classe peut définir plusieurs constructeurs avec des listes de paramètres différentes. Le compilateur choisit celui qui correspond aux arguments passés à `new`.

Oui. GitHub Copilot suggère des modificateurs, des constructeurs et des initialiseurs de champs à partir d'un nom de classe ou d'un commentaire dans Visual Studio et VS Code. RevConsultez chaque niveau de visibilité suggéré.

ML.NET associe les propriétés publiques d'une classe de données C# aux caractéristiques et aux étiquettes du modèle. Les accesseurs et mutateurs publics permettent de lire ces valeurs pendant l'entraînement.

Résumez cet article avec :