Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
anahtar internal sözcüğü, türler ve tür üyeleri için bir erişim değiştiricidir .
C# dili başvuru belgesi, C# dilinin en son yayımlanan sürümünü gösterir. Ayrıca, yaklaşan dil sürümü için genel önizlemelerdeki özelliklere yönelik ilk belgeleri içerir.
Belgelerde ilk olarak dilin son üç sürümünde veya geçerli genel önizlemelerde sunulan tüm özellikler tanımlanır.
Tavsiye
Bir özelliğin C# dilinde ilk tanıtıldığı zamanları bulmak için C# dil sürümü geçmişi makalesine bakın.
Uyarı
Bu makale erişim konularını kapsar internal . Anahtar internal sözcüğü de erişim değiştiricisinin protected internal bir parçasıdır.
Aşağıdaki örnekte gösterildiği gibi iç türlere veya üyelere yalnızca aynı derlemedeki dosyalar içinde erişebilirsiniz:
public class BaseClass
{
// Only accessible within the same assembly.
internal static int x = 0;
}
Diğer erişim değiştiricileriyle karşılaştırması internal için bkz . Erişilebilirlik Düzeyleri ve Erişim Değiştiricileri.
, assembly bir veya daha fazla kaynak dosyanın derlenmesinden oluşturulan yürütülebilir veya dinamik bağlantı kitaplığıdır (DLL).
Derlemeler hakkında daha fazla bilgi için bkz. .NET'te derlemeler.
İç erişimin yaygın bir kullanımı bileşen tabanlı geliştirme aşamasındadır çünkü bir bileşen grubunun uygulama kodunun geri kalanına maruz kalmadan özel bir şekilde işbirliği yapmalarına olanak tanır. Örneğin, grafik kullanıcı arabirimleri oluşturmaya yönelik bir çerçeve, iç erişime sahip üyeleri kullanarak işbirliği yapacak ve Control sınıflar sağlayabilirForm. Bu üyeler iç oldukları için çerçeveyi kullanan kodlara maruz kalmazlar.
Tanımladığınız derleme dışında iç erişimi olan bir türe veya üyeye başvurmak bir hatadır.
Örnekler
Bu örnek, Assembly1.cs ve Assembly1_a.cs adlı iki dosya içerir. İlk dosya bir iç temel sınıf içerir: BaseClass. İkinci dosyada örnek oluşturma BaseClass girişimi bir hataya neden olur.
// 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
}
}
Bu örnekte, ilk örnekte kullandığınız dosyaları kullanın, ancak erişilebilirlik düzeyini BaseClass olarak publicdeğiştirin. Ayrıca üyenin intM erişilebilirlik düzeyini olarak internaldeğiştirin. Bu durumda, sınıfın örneğini oluşturabilirsiniz, ancak iç üyeye erişemezsiniz.
// 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
}
}
C# Dil Belirtimi
Daha fazla bilgi için bkz. C# Dil Belirtimi'ndebildirilen erişilebilirlik. Dil belirtimi, C# söz dizimi ve kullanımı için kesin kaynaktır.