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.
Jenis berlapis adalah jenis yang Anda tentukan dalam kelas, struct, atau antarmuka. Contohnya:
public class Container
{
class Nested
{
Nested() { }
}
}
Terlepas dari apakah tipe luar adalah kelas, antarmuka, atau struktur, tipe bersarang secara default menjadi privat. Anda hanya dapat mengaksesnya dari jenis yang berisi. Dalam contoh sebelumnya, jenis eksternal tidak dapat mengakses Nested kelas.
Anda juga dapat menentukan pengubah akses untuk menentukan aksesibilitas jenis berlapis, sebagai berikut:
Jenis-jenis berlapis dari sebuah kelas dapat publik, dilindungi, internal, internal dilindungi, privat, atau privat dilindungi.
Namun, mendefinisikan kelas berlapis
protected,protected internal, atauprivate protecteddi dalam kelas sealed menghasilkan peringatan dari kompilator CS0628, "anggota baru yang dilindungi yang dideklarasikan dalam kelas sealed."Perlu diketahui juga bahwa membuat jenis berlapis terlihat secara eksternal melanggar aturan kualitas kode CA1034 "Jenis berlapis tidak boleh terlihat".
Jenis struct berlapis dapat bersifat publik, internal, atau privat.
Contoh berikut membuat kelas Nested publik:
public class Container
{
public class Nested
{
Nested() { }
}
}
Tipe internal, atau dalam, dapat mengakses tipe eksternal, atau luar. Untuk mengakses jenis yang berisi, teruskan sebagai argumen ke konstruktor jenis berlapis. Contohnya:
public class Container
{
public class Nested
{
private Container? parent;
public Nested()
{
}
public Nested(Container parent)
{
this.parent = parent;
}
}
}
Tipe bertingkat memiliki akses ke semua anggota yang dapat diakses oleh tipe induknya. Ini dapat mengakses anggota privat dan yang dilindungi dari tipe induk, termasuk anggota dilindungi yang diwariskan.
Dalam deklarasi sebelumnya, nama lengkap Nested kelas Container.Nested. Ini adalah nama yang digunakan untuk membuat instans baru kelas berlapis, sebagai berikut:
Container.Nested nest = new Container.Nested();