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.
Pengubah file membatasi visibilitas jenis tingkat atas ke file yang berisi deklarasinya. Generator sumber paling sering menerapkan file pengubah ke jenis yang mereka hasilkan. Jenis file lokal menyediakan generator sumber dengan cara yang mudah untuk menghindari tabrakan nama di antara jenis yang dihasilkan.
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#.
Pengubah file mendeklarasikan jenis file lokal, seperti dalam contoh ini:
file class HiddenWidget
{
// implementation
}
Jenis apa pun yang ditumpuk dalam jenis file-lokal juga hanya terlihat dalam file yang berisi deklarasinya. Jenis lain dalam rakitan dapat menggunakan nama yang sama dengan jenis file lokal. Karena jenis file-lokal hanya terlihat dalam file yang berisi deklarasinya, jenis ini tidak membuat tabrakan penamaan.
Jenis file lokal tidak boleh berupa jenis pengembalian atau jenis parameter anggota mana pun yang dideklarasikan dalam jenis lokal non-file. Jenis file-lokal tidak dapat menjadi anggota bidang dari jenis non-file-lokal. Namun, jenis yang lebih terlihat dapat secara implisit mengimplementasikan jenis antarmuka lokal file. Jenis ini juga dapat secara eksplisit mengimplementasikan antarmuka lokal file tetapi implementasi eksplisit hanya dapat digunakan dalam file yang sama.
Contoh berikut menunjukkan tipe publik yang menggunakan tipe lokal-file untuk menyediakan metode pekerja. Selain itu, jenis publik mengimplementasikan antarmuka file lokal secara implisit:
// In File1.cs:
file interface IWidget
{
int ProvideAnswer();
}
file class HiddenWidget
{
public int Work() => 42;
}
public class Widget : IWidget
{
public int ProvideAnswer()
{
var worker = new HiddenWidget();
return worker.Work();
}
}
Dalam file sumber lain, Anda dapat mendeklarasikan jenis yang memiliki nama yang sama dengan jenis file lokal. Jenis file lokal tidak terlihat:
// In File2.cs:
// Doesn't conflict with HiddenWidget
// declared in File1.cs
public class HiddenWidget
{
public void RunTask()
{
// omitted
}
}
Pencarian anggota lebih mengutamakan tipe yang bersifat lokal terhadap file dan dinyatakan dalam file yang sama, dibandingkan dengan tipe yang bersifat non-lokal terhadap file dan dinyatakan dalam file yang berbeda. Aturan ini memastikan bahwa generator kode sumber dapat mengandalkan pencarian anggota untuk menyelesaikan tipe yang khusus untuk file tanpa ambiguitas dengan deklarasi tipe lainnya. Dalam contoh sebelumnya, semua penggunaan HiddenWidget dalam File1.cs merujuk ke tipe lokal file yang dideklarasikan dalam File1.cs. Deklarasi lokal-file HiddenWidget menyembunyikan deklarasi publik di File2.cs.
Spesifikasi bahasa C#
Untuk informasi selengkapnya, lihat Aksesibilitas yang dinyatakan dalam Spesifikasi Bahasa C#, dan Spesifikasi fitur Jenis lokal file .