internal (C# Başvurusu)internal (C# Reference)

internalAnahtar sözcüğü, türler ve tür üyeleri için bir erişim değiştiricisidir .The internal keyword is an access modifier for types and type members.

Bu sayfa internal erişimi içerir.This page covers internal access. internalAnahtar sözcüğü ayrıca protected internal erişim değiştiricisinin bir parçasıdır.The internal keyword is also part of the protected internal access modifier.

İç türlere veya üyelere, bu örnekte olduğu gibi, yalnızca aynı derlemede bulunan dosyalar içinde erişilebilir:Internal types or members are accessible only within files in the same assembly, as in this example:

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

internalDiğer erişim değiştiricilerine kıyasla, bkz. Erişilebilirlik düzeyleri ve erişim değiştiricileri.For a comparison of internal with the other access modifiers, see Accessibility Levels and Access Modifiers.

Derlemeler hakkında daha fazla bilgi için bkz. .net 'Teki derlemeler.For more information about assemblies, see Assemblies in .NET.

İç erişimin yaygın olarak kullanılması bileşen tabanlı geliştirmede olduğundan, bir grup bileşenin, uygulama kodunun geri kalanında gösterilmeksizin özel bir biçimde birlikte çalışabilmesine olanak sağlar.A common use of internal access is in component-based development because it enables a group of components to cooperate in a private manner without being exposed to the rest of the application code. Örneğin, grafik kullanıcı arabirimleri oluşturmaya yönelik bir çerçeve, Control Form iç erişimi olan üyeleri kullanarak birlikte çalışan sınıflar sağlayabilir ve sınıflardır.For example, a framework for building graphical user interfaces could provide Control and Form classes that cooperate by using members with internal access. Bu Üyeler iç olduğundan, Framework kullanan koda gösterilmez.Since these members are internal, they are not exposed to code that is using the framework.

Bir tür ya da bir üyeye, tanımlandıkları derlemenin dışında iç erişimle başvurulmaları hatadır.It is an error to reference a type or a member with internal access outside the assembly within which it was defined.

ÖrnekExample

Bu örnek, ve olmak üzere iki dosya içerir Assembly1.cs Assembly1_a.cs .This example contains two files, Assembly1.cs and Assembly1_a.cs. İlk dosya, bir iç temel sınıf içerir BaseClass .The first file contains an internal base class, BaseClass. İkinci dosyada, örnek oluşturma girişimi BaseClass bir hata oluşturur.In the second file, an attempt to instantiate BaseClass will produce an error.

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

ÖrnekExample

Bu örnekte, örnek 1 ' de kullandığınız dosyaları kullanın ve erişilebilirlik düzeyini BaseClass olarak değiştirin public .In this example, use the same files you used in example 1, and change the accessibility level of BaseClass to public. Ayrıca üyenin erişilebilirlik düzeyini de değiştirin intM internal .Also change the accessibility level of the member intM to internal. Bu durumda, sınıfının örneğini oluşturabilirsiniz, ancak iç üyeye erişemezsiniz.In this case, you can instantiate the class, but you cannot access the internal member.

// 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 BelirtimiC# Language Specification

Daha fazla bilgi için bkz. C# dil belirtiminde Erişilebilirlik bildirimi .For more information, see Declared accessibility in the C# Language Specification. Dil belirtimi, C# sözdizimi ve kullanımı için kesin bir kaynaktır.The language specification is the definitive source for C# syntax and usage.

Ayrıca bkz.See also