Modificateur d'accès (Access Modifier) en C#
1. Modificateur dans CSharp
Les access modifiers dans CSharp précise l'accessibilité (Champ) d'une données de membre, de méthode, de constructeur (constructor) ou de classe.
Il y a 5 types de access modifiers dans CSharp:
- private
- protected
- internal
- protected internal
- public
2. Vue d'ensemble de access modifier
Modificateur (Modifier) | Description |
private | L'accès est limité à la définition de classe. C'est le type de modificateur d'accès par défaut si aucun n'est formellement spécifié |
protected | L'accès est limité à la définition de classe et à toute classe qui hérite de la classe. |
internal | L'accès est limité exclusivement aux classes définies dans l'assemblage du projet actuel. |
protected internal | L'accès est limité à l'assemblage actuel et aux types dérivés de la classe contenant. Tous les membres dans le projet actuel et tous les membres dans une classe dérivée peuvent accéder aux variables. |
public | Il n'y a aucune restriction quant à l'accès aux membres publics (public). |
Le tableau ci- dessous vous donne une vue d'ensemble de comment utiliser des access modifier.
Même Assembly | Assembly Différent | ||||
Accèss en classe | Accèss en package | Accèss à l'extérieur de parkage par sous-classe uniquement | Dans la sous classe | Hors de la sous classe | |
private | Y | ||||
protected | Y | Y | Y | ||
internal | Y | Y | Y | ||
protected internal | Y | Y | Y | ||
public | Y | Y | Y | Y | Y |
Vous pouvez voir plus en détails dans l'exemple ci-dessous:
3. private access modifier
private access modifier est accessible seulement dans la classe.
Vous ne pouvez acccéder au membre private en dehors de la classe qui définit ce membre-là. CSharp sẽ notifiera l'erreur à l'heure de compilation de la classe.
4. private constructor
Le constructeur (constructor), la méthode (method), le champ (field) sont reconnus comme les membres de la classe.
Si vous créez une classe et avoir un constructeur (constructor) dont le access modifier est private, vous ne pouvez pas créer un objet de cette classe de ce ledit private constructor en dehors de cette classe. Voyons un exemple d'illustration:
5. protected access modifier
protected access modifier peut accéder à l'intérieur du package, ou en dehors du package dans le cas où il hérite de cette classe.
protected access modifier peut être appliqué sur des données de field, method et constructor. Il ne peut pas être appliqué sur la class (class, interface, ..).
6. internal access modifier
internal est un modificateur d'accès, il n'est limité exclusivement d'accéder aux classes qui sont définies dans le projet courant Assembly.
Un Assembly est le résultat de compilation de votre code, généralement est un DLL, mais EXE est également considéré comme un assembly. Il est la plus petite unitéde déploiement pour tout projet .NET.
Assembly comprend généralement le code .NET dans MSIL (Microsoft Intermediate language - Langage intermédiaire) qui sera compilé au code indigène (Native code) ("JITted" - compilé par le compilateur Just-In-Time) pour la première fois, il est exécuté sur une machine donnée. Ce code compilé là sera aussi stocké dans Assembly et réutilisé pour des appels suivant.
7. protected internal access modifier
Le modificateur d'accès protected internal est une combinaison entre deux modificateur protected et internal, lorsqu' un membre de la classe possède ce modificateur d'accès, vous pouvez seulement accéder au ce membre dans la classe qui le définit ou dans des sous classes et il est compris dans un Assembly.
8. public access modifier
public access modifier est accessible n'import quel lieu. Il a la portée la plus étendue parmi tous les autres modifier.
9. Le modificateur d'accès et l'héritage
Dans CSharp vous pouvez remplacer (override) une méthode (method) de la superclasse par la méthode de même nom et de mêmes paramètres, renvoie le type dans la sous-classe, mais vous n'êtes pas autorisé de changer son modificateur d'accès (access modifier).
Cependant, vous pouvez créer une méthode avec le même nom, les même paramètres, renvoie le typem mais de différents niveaux d'accessibilité lorsque vous utilisez le nouveau mot de pass. En effet, le fait est qu'une méthode différente est sans rapport avec la méthode de la classe mère.
La différence entre override et new ont été expliquées dans le document "L'héritage et le polymorphisme dans CSharp" vous pouvez le voir à:
Tutoriels de programmation C#
- Héritage et polymorphisme en C#
- De quoi avez-vous besoin pour démarrer avec C#?
- Apprenez rapidement à développer en C# pour débutant
- Installer Visual Studio 2013 sur Windows
- Classe abstraite et interface dans C#
- Installer Visual Studio 2015 sur Windows
- Compression et décompression dans C#
- Tutoriel de programmation multithread C#
- Tutoriel C# Delegate et Event
- Installer AnkhSVN sur Windows
- Programmation C# pour l'équipe utilisant Visual Studio et SVN
- Installer .Net Framework
- Modificateur d'accès (Access Modifier) en C#
- Le Tutoriel de C# String et de StringBuilder
- Le Tutoriel de C# Properties
- Le Tutoriel de C# Enum
- Le Tutoriel de C# Structure
- Le Tutoriel de C# Generics
- Tutoriel sur la gestion des exceptions C#
- Le Tutoriel de C# Date Time
- Manipulation de fichiers et de répertoires dans C#
- Tutoriel C# Stream - flux binaire en C#
- Le Tutoriel d'expressions régulières C#
- Se Connecter à la base de données SQL Server dans C#
- Travailler avec la base de données SQL Server dans C#
- Connectez-vous à la base de données MySQL dans C#
- Travailler avec la base de données MySQL dans C#
- Connectez-vous à la base de données Oracle dans CSharp sans Oracle Client
- Utilisation d'une base de données Oracle en utilisant C#
Show More