belső (C# referencia)
A internal
kulcsszó a típus- és típustagok hozzáférési módosítója .
Ez a lap a hozzáférést ismerteti
internal
. Ainternal
kulcsszó a hozzáférési módosító részeprotected internal
is.
A belső típusok vagy tagok csak ugyanabban a szerelvényben lévő fájlokon belül érhetők el, mint ebben a példában:
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, amelyen belül definiálták.
1. példa
Ez a példa két fájlt 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 fog eredményezni.
// 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
}
}
2. példa
Ebben a példában használja ugyanazokat a fájlokat, amelyeket az 1. példában használt, és módosítsa a kisegítő lehetőségek szintjét BaseClass
public
. 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
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: