Aracılığıyla paylaş


iç (C# Reference)

internal Anahtar sözcüğü bir erişim değiştiricisi türleri ve üyeleri türü.İç türleri veya üyeleri yalnızca bu örnekte olduğu gibi aynı bütünleştirilmiş kodda dosyalarındaki erişilebilir:

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

Türler veya erişim değiştiricisi olan üyeler protected internal geçerli bir derleme veya içeren sınıftan türetilmiş türlerinden erişilebilir.

Karşılaştırması için internal diğer erişim değiştiricileri ile bkz: Erişilebilirlik düzeyleri (C# Reference) ve Erişim değiştiricileri (C# Programlama Kılavuzu).

Derlemeler hakkında daha fazla bilgi için, bkz. Derlemeler ve genel birleştirme önbelleğine (C# ve Visual Basic).

Yaygın bir kullanımı dahili erişim, bileşen tabanlı geliştirme çünkü uygulama kodu geri kalanı için sunulan özel bir biçimde işbirliği bileşenler grubu sağlar.Örneğin, grafik kullanıcı arabirimleri oluşturmak için bir çerçeve sağlayabilir Control ve Form dahili erişimi olan üyeler kullanarak işbirliği sınıfları.Bu üyelerin iç beri framework kullanan kod almamalıdır.

Bunu bir tür veya derleme içinde tanımlanmış olan dışına dahili erişime sahip bir üye başvurmak için bir hatadır.

Örnek

Bu örnek, iki dosya içerir Assembly1.cs ve Assembly1_a.cs.İlk dosya içeren bir iç taban sınıf BaseClass.Örneğini oluşturmak için bir girişim ikinci dosyasında BaseClass bir hata üretecektir.

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

Bu örnekte kullanılan örnek 1 kullandığınız dosyaları kullanın ve erişilebilirlik düzeyini değiştirmek BaseClass için public.Ayrıca üye erişilebilirlik düzeyini değiştirmek IntM için internal.Bu durumda, sınıfın örneği, ancak iç üyesine erişemez.

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

C# dil belirtimi

Daha fazla bilgi için bkz: C# dil belirtiminin. Dil belirtimi, C# sözdizimi ve kullanımı için nihai kaynaktır.

Ayrıca bkz.

Başvuru

C# anahtar sözcükler

Erişim değiştiricileri (C# Reference)

Erişilebilirlik düzeyleri (C# Reference)

Değiştiriciler (C# Reference)

Ortak (C# Reference)

Özel (C# Reference)

korumalı (C# Reference)

Kavramlar

C# Programlama Kılavuzu

Diğer Kaynaklar

C# Başvurusu