Maison > Article > développement back-end > Les difficultés C# sont décomposées une par une (5) : Types d'accès aux classes
Quand on parle des différences entre ces quatre catégories, il est nécessaire d'expliquer un concept : l'assemblage. Assembly (Assembly) peut être simplement compris comme un fichier .dll ou .exe généré après la compilation. Par rapport à l'espace de noms, il s'agit de la forme d'organisation logique de la bibliothèque de classes. Elle peut être appelée la forme d'organisation physique de la bibliothèque de classes de programme. décrit "assembly" Contient des métadonnées décrivant leurs propres numéros de build et des détails sur toutes les données et types d'objets qu'ils contiennent". La situation générale est qu'un assembly peut contenir un ou plusieurs espaces de noms.
Public : visible par toute méthode de toute autre classe ;
Privé : les membres définis dans cette classe ne sont accessibles que par les méthodes de cette classe ;
Protégé : les membres de cette classe ne sont accessibles que par les méthodes de cette classe ; by Les méthodes de cette classe et les méthodes des classes qui héritent de cette classe ne sont accessibles que par
interne : les membres de cette classe ne sont accessibles que par les méthodes de n'importe quelle classe de l'assembly où se trouve cette classe
protected internal ; : protégé et interne L'union de .
Donc, le niveau d'accès de haut en bas doit être Public>protected internal>internal>Protected>Private
Le modificateur par défaut de la classe est interne, le modificateur par défaut des variables membres de la classe est privé , et l'espace de noms peut considérer le modificateur public. Un autre point mentionné sur msdn est que le niveau d'accès d'une classe héritante ne peut pas être supérieur au niveau d'accès de la classe héritée. Par exemple, une classe interne ne peut pas hériter d'une classe privée.
using System; /****************************** * Chapter:C#难点逐个击破(五) * Author:王洪剑 * Date:2010-1-15 * Blog:http://www.51obj.cn/ * Email:walkingp@126.com * Description:访问修改符 * ***************************/ namespace TestMain { public class A { public void Alert() { } } internal class B:A { internal new void Alert() { Console.WriteLine("you"); } } class Program { static void Main() { B b=new B(); b.Alert(); } } }
Ce qui précède est le contenu de la difficulté C# un par un (5) : Type d'accès à la classe Pour plus de contenu connexe, veuillez faire attention au site Web PHP chinois (www.php.cn) !