Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Kata internal kunci adalah pengubah akses untuk jenis dan jenis anggota.
Referensi bahasa C# mendokumentasikan versi bahasa C# yang paling baru dirilis. Ini juga berisi dokumentasi awal untuk fitur dalam pratinjau publik untuk rilis bahasa yang akan datang.
Dokumentasi mengidentifikasi fitur apa pun yang pertama kali diperkenalkan dalam tiga versi terakhir bahasa atau dalam pratinjau publik saat ini.
Petunjuk / Saran
Untuk menemukan kapan fitur pertama kali diperkenalkan di C#, lihat artikel tentang riwayat versi bahasa C#.
Nota
Artikel ini membahas internal akses. Kata internal kunci juga merupakan bagian dari pengubah protected internal akses.
Anda hanya dapat mengakses jenis internal atau anggota dalam file dalam rakitan yang sama, seperti yang ditunjukkan dalam contoh berikut:
public class BaseClass
{
// Only accessible within the same assembly.
internal static int x = 0;
}
Untuk perbandingan internal dengan pengubah akses lainnya, lihat Tingkat Aksesibilitas dan Pengubah Akses.
assembly adalah pustaka tautan yang dapat dieksekusi atau dinamis (DLL) yang dihasilkan dari mengkompilasi satu atau beberapa file sumber.
Untuk informasi selengkapnya tentang rakitan, lihat Rakitan di .NET.
Penggunaan umum akses internal adalah dalam pengembangan berbasis komponen karena memungkinkan sekelompok komponen untuk bekerja sama secara privat tanpa diekspos ke sisa kode aplikasi. Misalnya, kerangka kerja untuk membangun antarmuka pengguna grafis dapat menyediakan Control kelas dan Form yang bekerja sama dengan menggunakan anggota dengan akses internal. Karena anggota ini bersifat internal, mereka tidak terekspos ke kode yang menggunakan kerangka kerja.
Ini adalah kesalahan untuk mereferensikan jenis atau anggota dengan akses internal di luar rakitan tempat Anda menentukannya.
Examples
Contoh ini berisi dua file, Assembly1.cs dan Assembly1_a.cs. File pertama berisi kelas dasar internal, BaseClass. Di file kedua, upaya untuk membuat instans BaseClass menghasilkan kesalahan.
// 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
}
}
Dalam contoh ini, gunakan file yang sama dengan yang Anda gunakan dalam contoh pertama, tetapi ubah tingkat BaseClass aksesibilitas menjadi public. Ubah juga tingkat aksesibilitas anggota intM menjadi internal. Dalam hal ini, Anda dapat membuat instans kelas, tetapi Anda tidak dapat mengakses anggota internal.
// 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
}
}
Spesifikasi Bahasa C#
Untuk informasi selengkapnya, lihat Aksesibilitas yang dinyatakan dalam Spesifikasi Bahasa C#. Spesifikasi bahasa adalah sumber definitif untuk sintaks dan penggunaan C#.