Bagikan melalui


Jenis Berlapis (Panduan Pemrograman C#)

Jenis yang ditentukan dalam kelas, struct, atau antarmuka disebut jenis berlapis. Misalnya

public class Container
{
    class Nested
    {
        Nested() { }
    }
}

Terlepas dari apakah jenis luarnya adalah kelas, antarmuka, atau struct, jenis berlapis default ke privat; jenis berlapis hanya dapat diakses dari jenis yang menyimpan jenis berlapis. Pada contoh sebelumnya, kelas Nested tidak dapat diakses oleh jenis eksternal.

Anda juga dapat menentukan pengubah akses untuk menentukan aksesibilitas jenis berlapis, sebagai berikut:

Contoh berikut membuat kelas Nested menjadi publik:

public class Container
{
    public class Nested
    {
        Nested() { }
    }
}

Jenis berlapis, atau dalam, dapat mengakses jenis yang disimpan, atau jenis luar. Untuk mengakses jenis yang disimpan, teruskan jenis sebagai argumen ke konstruktor dari jenis berlapis. Contohnya:

public class Container
{
    public class Nested
    {
        private Container? parent;

        public Nested()
        {
        }
        public Nested(Container parent)
        {
            this.parent = parent;
        }
    }
}

Jenis berlapis memiliki akses ke semua anggota yang dapat diakses oleh jenis yang disimpan oleh jenis berlapis. Jenis berlapis dapat mengakses anggota privat dan yang dilindungi dari jenis yang disimpan, termasuk anggota yang dilindungi yang diwariskan.

Pada deklarasi sebelumnya, nama lengkap kelas Nested adalah Container.Nested. Ini adalah nama yang digunakan untuk membuat instans baru dari kelas berlapis, sebagai berikut:

Container.Nested nest = new Container.Nested();

Lihat juga