Udostępnij przez


internal (odwołanie w C#)

Słowo internal kluczowe jest modyfikatorem dostępu dla typów i składowych typów.

Dokumentacja języka C# zawiera ostatnio wydaną wersję języka C#. Zawiera również początkową dokumentację dla funkcjonalności w publicznych wersjach testowych nadchodzącego wydania języka.

Dokumentacja identyfikuje dowolną funkcję po raz pierwszy wprowadzoną w ostatnich trzech wersjach języka lub w bieżącej publicznej wersji zapoznawczej.

Wskazówka

Aby dowiedzieć się, kiedy funkcja została po raz pierwszy wprowadzona w języku C#, zapoznaj się z artykułem dotyczącym historii wersji języka C#.

Uwaga / Notatka

W tym artykule opisano internal dostęp. Słowo internal kluczowe jest również częścią protected internal modyfikatora dostępu.

Dostęp do typów wewnętrznych lub elementów członkowskich można uzyskać tylko w plikach w tym samym zestawie, jak pokazano w poniższym przykładzie:

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

Aby uzyskać porównanie internal z innymi modyfikatorami dostępu, zobacz Poziomy ułatwień dostępu i modyfikatory dostępu.

Jest assembly to plik wykonywalny lub dynamiczna biblioteka linków (DLL) utworzona na podstawie kompilowania co najmniej jednego pliku źródłowego.

Aby uzyskać więcej informacji na temat zestawów, zobacz Zestawy na platformie .NET.

Typowym zastosowaniem dostępu wewnętrznego jest programowanie oparte na składnikach, ponieważ umożliwia grupie składników współpracę w sposób prywatny bez uwidocznienia pozostałej części kodu aplikacji. Na przykład struktura służąca do tworzenia graficznych interfejsów użytkownika może udostępniać Control klasy Form , które współpracują przy użyciu elementów członkowskich z dostępem wewnętrznym. Ponieważ te elementy członkowskie są wewnętrzne, nie są one widoczne dla kodu korzystającego z platformy.

Jest to błąd podczas odwołowania się do typu lub elementu członkowskiego z dostępem wewnętrznym poza zestawem, w którym go zdefiniowano.

Przykłady

Ten przykład zawiera dwa pliki: Assembly1.cs i Assembly1_a.cs. Pierwszy plik zawiera wewnętrzną klasę bazową , BaseClass. W drugim pliku próba utworzenia wystąpienia BaseClass powoduje wystąpienie błędu.

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

W tym przykładzie użyj tych samych plików, które były używane w pierwszym przykładzie, ale zmień poziom ułatwień dostępu na BaseClasspublic. Zmień również poziom ułatwień dostępu elementu członkowskiego intM na internal. W takim przypadku można utworzyć wystąpienie klasy, ale nie możesz uzyskać dostępu do wewnętrznego elementu członkowskiego.

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

Specyfikacja języka C#

Aby uzyskać więcej informacji, zobacz Zadeklarowane ułatwienia dostępu w specyfikacji języka C#. Specyfikacja języka jest ostatecznym źródłem informacji o składni i użyciu języka C#.

Zobacz także