C# Academy · Leçon

public/internal/protected/private (remarque sur file)

Découvrez comment public, internal, protected et private modifient la visibilité ; voyez les règles d’héritage et de même assembly. Remarque : l’accès limité au fichier n’existe pas en C# 6.

Leçon 1 sur 38 étapes

public/internal/protected/private (remarque sur file) est une leçon C# Academy gratuite sur CoddyKit. Ceci est la leçon 1 sur 3. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage C# Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours C# Academy comprend 3 leçons au total.

Vue d’ensemble des modificateurs d’accès

Objectif : choisir la visibilité appropriée.

  • public : partout
  • internal : dans le même assembly
  • protected : dans les classes dérivées
  • private : dans la même classe
  • fichier : plus récent que C# 6 (à titre informatif)

private ou public

Gardez les champs private et exposez des membres public dont les valeurs sont validées.

using System;

// private: only inside the class; public: everywhere the class is visible
public class Box
{
  private int _width;             // hidden storage
  public int Width                // controlled access
  {
    get { return _width; }
    set { _width = value < 0 ? 0 : value; } // simple guard
  }
}

public class Program
{
  public static void Main(string[] args)
  {
    Box b = new Box();
    // b._width = -5; // INVALID: private (kept as comment)
    b.Width = 10;      // OK: public property
    Console.WriteLine("Width = " + b.Width);
  }
}

protected dans l’héritage

protected sert à l’héritage : les types dérivés peuvent l’utiliser, mais pas les éléments extérieurs.

using System;

public class BaseCounter
{
  protected int Count; // derived classes can see this
  public int Value() { return Count; }
}

public class StepCounter : BaseCounter
{
  public void Step() { Count = Count + 1; } // allowed: protected
}

public class Program
{
  public static void Main(string[] args)
  {
    StepCounter sc = new StepCounter();
    sc.Step();
    // sc.Count = 5; // INVALID from outside (commented)
    Console.WriteLine("Value = " + sc.Value());
  }
}

Accès internal

internal limite la visibilité à l’assembly actuel (bibliothèque ou application compilée).

using System;

// internal type: visible only inside this assembly
internal class InternalHelper
{
  public static string Ping() { return "pong"; }
}

// public type can use internal from the same assembly
public class UsesInternal
{
  public string Call() { return InternalHelper.Ping(); }
}

public class Program
{
  public static void Main(string[] args)
  {
    UsesInternal u = new UsesInternal();
    Console.WriteLine(u.Call());
  }
}

protected internal

protected internal signifie que l’élément est accessible aux types dérivés ou depuis n’importe quel endroit du même assembly.

using System;

public class LibraryBase
{
  // Accessible to derived types OR anywhere in the same assembly
  protected internal void Touch() { Console.WriteLine("touched"); }
}

public class LibChild : LibraryBase
{
  public void Use() { Touch(); } // via inheritance
}

public class Program
{
  public static void Main(string[] args)
  {
    LibChild c = new LibChild();
    c.Use();

    LibraryBase b = new LibraryBase();
    b.Touch(); // same assembly, allowed
  }
}

Remarque et conseils sur le modificateur file

Remarque : le modificateur d’accès fichier est apparu dans une version plus récente de C# (il n’existe pas dans C# 6). En C# 6, limitez-vous à public, internal, protected, private et protected internal.

  • Privilégiez private par défaut.
  • Utilisez public uniquement pour la surface de l’API.
  • Utilisez internal pour masquer l’implémentation aux autres assemblys.
  • Utilisez protected pour la coopération entre la classe de base et les classes dérivées.

Signification de internal

Vérification rapide : que signifie le modificateur d’accès internal en C# ?

Récapitulatif

Récapitulatif : choisissez la visibilité minimale nécessaire : private → protected/internal → public. C# 6 n’inclut pas le nouveau modificateur fichier ; utilisez internal pour masquer les éléments au niveau de l’assembly.

Gratuit pour commencer

Apprends C# avec un tuteur IA — gratuit

Écris et exécute du vrai code dans ton navigateur, obtiens de l'aide instantanée d'un tuteur IA disponible 24h/24, et reprends là où tu t'es arrêté sur le web ou dans l'app.

Cours
93
Leçons
346

Questions Fréquemment Posées

La leçon « public/internal/protected/private (remarque sur file) » est-elle gratuite ?

Oui — le texte complet de « public/internal/protected/private (remarque sur file) » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours C# Academy, passe à CoddyKit PRO. Le cours C# Academy comprend 3 leçons au total.

Qu'est-ce que j'apprendrai dans « public/internal/protected/private (remarque sur file) » ?

Découvrez comment public, internal, protected et private modifient la visibilité ; voyez les règles d’héritage et de même assembly. Remarque : l’accès limité au fichier n’existe pas en C# 6. Tu pratiques C# Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.

Dois-je avoir de l'expérience pour commencer C# Academy ?

Aucune expérience préalable n'est requise. C# Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 1 sur 3.

Combien de temps prend la leçon « public/internal/protected/private (remarque sur file) » ?

La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.

Peux-tu écrire et exécuter du code dans cette leçon C# Academy ?

Oui. Chaque leçon C# Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.

Toutes les leçons de ce cours

  1. public/internal/protected/private (remarque sur file)
  2. Espaces de noms, directives using et imports globaux (remarque)
  3. Types partiels et fichiers
← Retour à C# Academy