Sdílet prostřednictvím


internal (referenční dokumentace jazyka C#)

Klíčové internal slovo je modifikátor přístupu pro typy a členy typů.

Referenční dokumentace jazyka C# dokumentuje naposledy vydané verze jazyka C#. Obsahuje také počáteční dokumentaci k funkcím ve verzi Public Preview pro nadcházející jazykovou verzi.

Dokumentace identifikuje všechny funkce, které byly poprvé představeny v posledních třech verzích jazyka nebo v aktuálních verzích Public Preview.

Návod

Informace o tom, kdy byla funkce poprvé představena v jazyce C#, najdete v článku o historii verzí jazyka C#.

Poznámka:

Tento článek popisuje internal přístup. Klíčové internal slovo je také součástí modifikátoru protected internal přístupu.

K interním typům nebo členům můžete přistupovat pouze v rámci souborů ve stejném sestavení, jak je znázorněno v následujícím příkladu:

public class BaseClass
{
    // Only accessible within the same assembly.
    internal static int x = 0;
}

Porovnání internal s ostatními modifikátory přístupu najdete v tématu Úrovně přístupnosti a Modifikátory přístupu.

Je assembly spustitelná nebo dynamická knihovna odkazů (DLL) vytvořená z kompilace jednoho nebo více zdrojových souborů.

Další informace o sestaveních naleznete v tématu Sestavení v .NET.

Běžné použití interního přístupu je ve vývoji založeném na komponentách, protože umožňuje skupině komponent spolupracovat soukromě, aniž by byla vystavena zbytku kódu aplikace. Například architektura pro vytváření grafických uživatelských rozhraní může poskytovat Control a Form třídy, které spolupracují pomocí členů s interním přístupem. Vzhledem k tomu, že jsou tito členové interní, nejsou vystaveni kódu, který používá architekturu.

Jedná se o chybu odkazování na typ nebo člen s interním přístupem mimo sestavení, kde jste ho definovali.

Examples

Tento příklad obsahuje dva soubory Assembly1.cs a Assembly1_a.cs. První soubor obsahuje interní základní třídu , BaseClass. Při pokusu o vytvoření instance BaseClass druhého souboru dojde k chybě.

// 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
   }
}

V tomto příkladu použijte stejné soubory, které jste použili v prvním příkladu, ale změňte úroveň BaseClass přístupnosti na public. Změňte také úroveň přístupnosti člena intM na internal. V takovém případě můžete vytvořit instanci třídy, ale nemůžete získat přístup k internímu členu.

// 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
   }
}

Specifikace jazyka C#

Další informace naleznete v tématu Deklarovaná přístupnost ve specifikaci jazyka C#. Specifikace jazyka je konečným zdrojem syntaxe a použití jazyka C#.

Viz také