Udostępnij za pośrednictwem


(C# wzorca wewnętrznego)

internal Jest słowem kluczowym Modyfikator dostępu dla typów i elementy członkowskie typu.Typy wewnętrznego lub członkowie są dostępne tylko w obrębie tego samego zestawu, jak w poniższym przykładzie pliki:

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

Typy lub członków, które mają modyfikator dostępu protected internal można uzyskać dostęp z bieżącego zestawu lub typów, które są uzyskiwane z klasa zawierająca.

Dla porównania z internal z innych modyfikatorów dostępu, zobacz Poziomy dostępności (C# odniesienia) i Modyfikatory dostępu (Podręcznik programowania C#).

Aby uzyskać więcej informacji na temat zestawów, zobacz Zespoły i pamięci podręcznej zestawów globalnych (C# i Visual Basic).

Wspólne korzystanie z dostępu do wewnętrznego jest w rozwoju składnika, ponieważ umożliwia to grupy składników do współpracy w sposób prywatne nie będą narażone na pozostałej części kodu aplikacji.Na przykład, może dostarczyć ramy do tworzenia graficznych interfejsów użytkownika Control i Form klas, które współpracują przy użyciu członków z wewnętrznego dostępu.Ponieważ te elementy są wewnętrzne, nie są one narażone na kod, który używa ramach.

Jest to błąd, aby odwoływać się do typu lub element członkowski z wewnętrznego dostęp spoza zestawu, w którym został zdefiniowany.

Przykład

W tym przykładzie zawiera dwa pliki, Assembly1.cs i Assembly1_a.cs.Pierwszy plik zawiera wewnętrzny klasy bazowej, BaseClass.W drugim pliku, próba utworzenia wystąpienia BaseClass powoduje wygenerowanie 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() 
   {
      BaseClass myBase = new BaseClass();   // CS0122
   }
}

W tym przykładzie Użyj tych samych plików używane w przykładzie 1 i zmienić poziom dostępności BaseClass do public.Również zmienić poziom dostępności członka IntM do internal.W takim przypadku można utworzyć wystąpienie klasy, ale nie może uzyskać dostępu do wewnętrznego członka.

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

Specyfikacja języka C#

Aby uzyskać więcej informacji, zobacz Specyfikacja języka C#. Specyfikacja języka to najlepsze źródło informacji dotyczących składni i zastosowania języka C#.

Zobacz też

Informacje

Słowa kluczowe języka C#

Modyfikatory dostępu (C# odniesienia)

Poziomy dostępności (C# odniesienia)

Modyfikatory (C# odniesienia)

publicznego (C# odniesienia)

prywatne (C# odniesienia)

chronione (C# odniesienia)

Koncepcje

Podręcznik programowania C#

Inne zasoby

C# odniesienia