Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Het internal trefwoord is een toegangsaanpassing voor typen en typeleden.
De C#-taalreferentiedocumenten beschrijven de meest recent uitgebrachte versie van de C#-taal. Het bevat ook de eerste documentatie voor functies in openbare previews voor de aanstaande taalrelease.
De documentatie identificeert alle functies die voor het eerst zijn geïntroduceerd in de laatste drie versies van de taal of in de huidige openbare previews.
Aanbeveling
Raadpleeg het artikel over de versiegeschiedenis van de C#-taal om te achterhalen wanneer een functie voor het eerst is geïntroduceerd in C#.
Opmerking
In dit artikel wordt toegang behandeld internal . Het internal trefwoord maakt ook deel uit van de protected internal toegangsaanpassing.
U hebt alleen toegang tot interne typen of leden binnen bestanden in dezelfde assembly, zoals wordt weergegeven in het volgende voorbeeld:
public class BaseClass
{
// Only accessible within the same assembly.
internal static int x = 0;
}
Zie internal en toegangsmodifiers voor een vergelijking van de andere toegangsmodifiers.
Een assembly is een uitvoerbaar bestand of DLL (Dynamic Link Library) dat wordt geproduceerd door het compileren van een of meer bronbestanden.
Zie Assembly's in .NET voor meer informatie over assembly's.
Een gemeenschappelijk gebruik van interne toegang is in ontwikkeling op basis van onderdelen, omdat een groep onderdelen op een privé manier kan samenwerken zonder blootgesteld te worden aan de rest van de toepassingscode. Een framework voor het bouwen van grafische gebruikersinterfaces kan bijvoorbeeld klassen bieden Control die Form samenwerken met behulp van leden met interne toegang. Omdat deze leden intern zijn, worden ze niet blootgesteld aan code die gebruikmaakt van het framework.
Het is een fout om te verwijzen naar een type of lid met interne toegang buiten de assembly waar u deze hebt gedefinieerd.
Voorbeelden
Dit voorbeeld bevat twee bestanden en Assembly1.csAssembly1_a.cs. Het eerste bestand bevat een interne basisklasse, BaseClass. In het tweede bestand wordt een poging tot instantiëren BaseClass een fout gegenereerd.
// 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
}
}
In dit voorbeeld gebruikt u dezelfde bestanden die u in het eerste voorbeeld hebt gebruikt, maar wijzigt u het toegankelijkheidsniveau in BaseClasspublic. Wijzig ook het toegankelijkheidsniveau van het lid intM in internal. In dit geval kunt u de klas instantiëren, maar u hebt geen toegang tot het interne lid.
// 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
}
}
C#-taalspecificatie
Zie Toegankelijkheid gedeclareerd in de C#-taalspecificatie voor meer informatie. De taalspecificatie is de definitieve bron voor de C#-syntaxis en het gebruik.