Sdílet prostřednictvím


internal (Referenční dokumentace jazyka C#)

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 Úrovně přístupnosti (Referenční dokumentace jazyka C#) a Modifikátory přístupu (Průvodce programováním v C#).

Další informace o sestavení naleznete v Sestavení a globální mezipaměť sestavení GAC (C# and 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 najdete 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

Klíčová slova jazyka C#

Modifikátory přístupu (Referenční dokumentace jazyka C#)

Úrovně přístupnosti (Referenční dokumentace jazyka C#)

Modifikátory (Referenční dokumentace jazyka C#)

public (Referenční dokumentace jazyka C#)

private (Referenční dokumentace jazyka C#)

protected (Referenční dokumentace jazyka C#)

Koncepty

Průvodce programováním v C#

Další zdroje

Referenční dokumentace jazyka C#