internal (odwołanie w C#)
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 ułatwień dostępu (odwołanie w C#) i Modyfikatory dostępu (Przewodnik programowania w języku C#).
Aby uzyskać więcej informacji na temat zestawów, zobacz Zestawy i globalna pamięć podręczna zestawów (C# and 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 jest ostatecznym źródłem informacji o składni i użyciu języka C#.
Zobacz też
Informacje
Modyfikatory dostępu (odwołanie w C#)
Poziomy ułatwień dostępu (odwołanie w C#)
Koncepcje
Przewodnik programowania w języku C#