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 9 | No |
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