Jegyzet
Az oldalhoz való hozzáférés engedélyezést igényel. Próbálhatod be jelentkezni vagy könyvtárat váltani.
Az oldalhoz való hozzáférés engedélyezést igényel. Megpróbálhatod a könyvtár váltását.
A internal kulcsszó a típus- és típustagok hozzáférési módosítója .
A C# nyelv referenciadokumentuma a C# nyelv legújabb kiadású verzióját ismerteti. Emellett a közelgő nyelvi kiadás nyilvános előzetes verziójú funkcióinak kezdeti dokumentációját is tartalmazza.
A dokumentáció azonosítja azokat a funkciókat, amelyeket először a nyelv utolsó három verziójában vagy az aktuális nyilvános előzetes verziókban vezetnek be.
Jótanács
Ha meg szeretné tudni, hogy mikor jelent meg először egy funkció a C#-ban, tekintse meg a C# nyelvi verzióelőzményeiről szóló cikket.
Megjegyzés:
Ez a cikk a hozzáféréssel foglalkozik internal . A internal kulcsszó a hozzáférési módosító része protected internal is.
A belső típusokat vagy tagokat csak ugyanabban a szerelvényben lévő fájlokon belül érheti el, ahogyan az alábbi példában látható:
public class BaseClass
{
// Only accessible within the same assembly.
internal static int x = 0;
}
A többi hozzáférési módosítóval való összehasonlítást internal lásd: Akadálymentességi szintek és hozzáférési módosítók.
Az An assembly egy végrehajtható vagy dinamikus csatolási kódtár (DLL), amely egy vagy több forrásfájl összeállításából származik.
További információ a szerelvényekről: Szerelvények a .NET-ben.
A belső hozzáférés gyakori használata az összetevőalapú fejlesztésben van, mivel lehetővé teszi, hogy az összetevők egy csoportja privát módon működjön együtt anélkül, hogy az alkalmazás kódjának többi része ki lenne téve. A grafikus felhasználói felületek létrehozására szolgáló keretrendszer például olyan osztályokat biztosíthat Control , Form amelyek belső hozzáféréssel rendelkező tagok használatával működnek együtt. Mivel ezek a tagok belsőek, nem lesznek kitéve a keretrendszert használó kódnak.
Hiba egy olyan típusra vagy tagra hivatkozni, amely belső hozzáféréssel rendelkezik azon a szerelvényen kívül, ahol definiálta.
Példák
Ez a példa két fájlt tartalmaz, Assembly1.cs és Assembly1_a.cs. Az első fájl egy belső alaposztályt tartalmaz. BaseClass A második fájlban a példányosítási BaseClass kísérlet hibát okoz.
// 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
}
}
Ebben a példában ugyanazokat a fájlokat használja, amelyeket az első példában használt, de módosítsa a kisegítő lehetőségek szintjét BaseClasspublic. A tag intM akadálymentességi szintjét is módosítsa a következőre internal: . Ebben az esetben példányosíthatja az osztályt, de nem férhet hozzá a belső taghoz.
// 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# nyelvi specifikáció
További információ: Deklarált akadálymentesség a C# nyelvi specifikációjában. A nyelvi specifikáció a C#-szintaxis és -használat végleges forrása.