Megosztás:


belső (C#-referencia)

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.

Lásd még