Bagikan melalui


CA1034: Jenis berlapis tidak boleh terlihat

Properti Nilai
ID Aturan CA1034
Judul Jenis berlapis tidak boleh terlihat
Golongan Desain
Perbaikan bersifat disruptif atau non-disruptif Merusak
Diaktifkan secara default di .NET 8 Tidak

Penyebab

Jenis yang terlihat secara eksternal berisi deklarasi jenis yang terlihat secara eksternal. Enumerasi berlapis, jenis yang dilindungi, dan pola penyusun dikecualikan dari aturan ini.

Deskripsi aturan

Jenis berlapis adalah jenis yang dideklarasikan dalam cakupan jenis lain. Jenis berlapis berguna untuk merangkum detail implementasi privat dari jenis yang berisi. Digunakan untuk tujuan ini, jeni berlapis tidak boleh terlihat secara eksternal.

Jangan gunakan jenis berlapis yang terlihat secara eksternal untuk pengelompokan logis atau untuk menghindari tabrakan nama; sebagai gantinya, gunakan namespace layanan.

Jenis berlapis mencakup gagasan aksesibilitas anggota, yang tidak dipahami oleh beberapa programmer dengan jelas.

Jenis yang dilindungi dapat digunakan dalam subkelas dan jenis berlapis dalam skenario penyesuaian terlebih dahulu.

Cara memperbaiki pelanggaran

Jika Anda tidak ingin jenis berlapis terlihat secara eksternal, ubah aksesibilitas jenis. Jika tidak, hapus jenis berlapis dari induknya. Jika tujuan bersarang adalah untuk mengategorikan jenis berlapis, gunakan namespace untuk membuat hierarki sebagai gantinya.

Kapan harus menekan peringatan

Jangan menyembunyikan peringatan dari aturan ini.

Contoh

Contoh berikut menunjukkan jenis yang melanggar aturan.

public class ParentType
{
    public class NestedType
    {
        public NestedType()
        {
        }
    }

    public ParentType()
    {
        NestedType nt = new NestedType();
    }
}
Imports System

Namespace ca1034

    Class ParentType

        Public Class NestedType
            Sub New()
            End Sub
        End Class

        Sub New()
        End Sub

    End Class

End Namespace