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.
| Properti | Nilai |
|---|---|
| ID Aturan | CA1034 |
| Judul | Jenis berlapis tidak boleh terlihat |
| Kategori | Desain |
| Perbaikan bersifat merusak atau tidak merusak | Merusak |
| Diaktifkan secara default di .NET 10 | Tidak |
| Bahasa yang berlaku | C# dan Visual Basic |
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. Tipe bersarang berguna untuk merangkum detail implementasi privat dari tipe induk. Untuk tujuan ini, tipe bersarang 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.
Tipe bersarang mencakup gagasan aksesibilitas anggota, yang tidak dipahami dengan jelas oleh beberapa programmer.
Jenis yang dilindungi dapat digunakan dalam subkelas dan jenis berlapis dalam skenario penyesuaian terlebih dahulu.
Cara memperbaiki pelanggaran
Jika Anda tidak ingin tipe bersarang terlihat secara eksternal, ubah aksesibilitas tipe tersebut. Jika tidak, hapus tipe tertanam 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