Note
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de changer d’annuaire.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de changer d’annuaire.
Le internal mot clé est un modificateur d’accès pour les types et les membres de type.
La documentation de référence du langage C# décrit la version la plus récente du langage C#. Il contient également la documentation initiale des fonctionnalités dans les préversions publiques pour la prochaine version du langage.
La documentation identifie toute fonctionnalité introduite en premier dans les trois dernières versions de la langue ou dans les préversions publiques actuelles.
Conseil / Astuce
Pour savoir quand une fonctionnalité a été introduite en C#, consultez l’article sur l’historique des versions du langage C#.
Note
Cet article traite de internal l’accès. Le internal mot clé fait également partie du modificateur d’accès protected internal .
Vous pouvez accéder aux types internes ou aux membres uniquement dans les fichiers du même assembly, comme illustré dans l’exemple suivant :
public class BaseClass
{
// Only accessible within the same assembly.
internal static int x = 0;
}
Pour une comparaison des internal autres modificateurs d’accès, consultez Les niveaux d’accessibilité et les modificateurs d’accès.
Il assembly s’agit d’une bibliothèque de liens dynamiques ou exécutable produite à partir de la compilation d’un ou de plusieurs fichiers sources.
Pour plus d’informations sur les assemblys, consultez Assemblys dans .NET.
Un usage courant de l’accès interne est en développement basé sur les composants, car il permet à un groupe de composants de coopérer de manière privée sans être exposé au reste du code d’application. Par exemple, une infrastructure permettant de créer des interfaces utilisateur graphiques peut fournir et Control des Form classes qui collaborent à l’aide de membres disposant d’un accès interne. Étant donné que ces membres sont internes, ils ne sont pas exposés au code qui utilise l’infrastructure.
Il s’agit d’une erreur pour référencer un type ou un membre disposant d’un accès interne en dehors de l’assembly où vous l’avez défini.
Examples
Cet exemple contient deux fichiers, Assembly1.cs et Assembly1_a.cs. Le premier fichier contient une classe de base interne. BaseClass Dans le deuxième fichier, une tentative d’instanciation BaseClass génère une erreur.
// Assembly1.cs
// Compile with: /target:library
internal class BaseClass
{
public static int intM = 0;
}
// Assembly1_a.cs
// Compile with: /reference:Assembly1.dll
class TestAccess
{
static void Main()
{
var myBase = new BaseClass(); // CS0122
}
}
Dans cet exemple, utilisez les mêmes fichiers que ceux que vous avez utilisés dans le premier exemple, mais remplacez le niveau d’accessibilité par BaseClasspublic. Modifiez également le niveau d’accessibilité du membre intM en internal. Dans ce cas, vous pouvez instancier la classe, mais vous ne pouvez pas accéder au membre interne.
// Assembly2.cs
// Compile with: /target:library
public class BaseClass
{
internal static int intM = 0;
}
// Assembly2_a.cs
// Compile with: /reference:Assembly2.dll
public class TestAccess
{
static void Main()
{
var myBase = new BaseClass(); // Ok.
BaseClass.intM = 444; // CS0117
}
}
Spécification du langage C#
Pour plus d’informations, consultez Accessibilité déclarée dans la spécification du langage C#. La spécification du langage est la source de référence pour la syntaxe C# et son utilisation.