Vnitřní (C#-Reference)
internal Klíčové slovo je Modifikátor přístupu pro typy a členy typu.Vnitřní typy nebo členy jsou přístupné pouze v rámci soubory ve stejném sestavení jako v následujícím příkladu:
public class BaseClass
{
// Only accessible within the same assembly
internal static int x = 0;
}
Typy nebo členy, které mají modifikátor přístupu protected internal lze získat přístup z aktuálního sestavení nebo typy, které jsou odvozeny ze třídy obsahující.
Porovnání internal s jinými modifikátory přístupu, viz Usnadnění úrovně (C#-Reference) a Modifikátory přístupu (Příručka programování C#).
Další informace o sestavení naleznete v Sestavení a globální mezipaměti sestavení (C# a Visual Basic).
Component-based rozvoje je běžné použití vnitřní přístup, protože umožňuje skupina součástí privátní způsobem spolupracovat bez vystavení zbývající části kódu aplikace.Například může poskytnout rámec pro vytváření grafických uživatelských rozhraní Control a Form tříd, které spolupracují s pomocí členů s vnitřním přístupem.Protože tyto členy jsou interní, nejsou vystaveny kódu, který používá rozhraní.
Jedná se o chybu, chcete-li odkazovat typ nebo člen s vnitřním přístupem mimo sestavení, ve které byla definována.
Příklad
Tento příklad obsahuje dva soubory, Assembly1.cs a Assembly1_a.cs.První soubor obsahuje vnitřní základní třídy BaseClass.Ve druhém souboru pokus o vytvoření instance BaseClass ohlásí chybu.
// 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()
{
BaseClass myBase = new BaseClass(); // CS0122
}
}
V tomto příkladu použijte tytéž soubory použité v příkladu 1 a změnit úroveň přístupu BaseClass na public.Také změnit úroveň přístupu členských IntM na internal.V takovém případě můžete vytvořit instanci třídy, ale nemůže získat přístup k interní člen.
// Assembly2.cs
// Compile with: /target:library
public class BaseClass
{
internal static int intM = 0;
}
// Assembly2_a.cs
// Compile with: /reference:Assembly1.dll
public class TestAccess
{
static void Main()
{
BaseClass myBase = new BaseClass(); // Ok.
BaseClass.intM = 444; // CS0117
}
}
Specifikace jazyka C#
Další informace naleznete v tématu Specifikace jazyka C#. Specifikace jazyka je úplným a rozhodujícím zdrojem pro syntaxi a použití jazyka C#.
Viz také
Referenční dokumentace
Modifikátory přístupu (C#-Reference)
Usnadnění úrovně (C#-Reference)