CA1034: İç içe türler görünebilir olmamalıdır
Özellik | Değer |
---|---|
Kural Kimliği | CA1034 |
Başlık | İç içe türler görünür olmamalıdır |
Kategori | Tasarım |
Hataya neden olan veya bozulmayan düzeltme | Yeni |
.NET 8'de varsayılan olarak etkin | Hayır |
Neden
Dışarıdan görünen bir tür, dışarıdan görünür bir tür bildirimi içerir. İç içe sabit listeleri, korumalı türler ve oluşturucu desenleri bu kuraldan muaf tutulur.
Kural açıklaması
İç içe yerleştirilmiş tür, başka bir tür kapsamında bildirilen bir türdür. İç içe türler, içeren türün özel uygulama ayrıntılarını kapsüllemek için kullanışlıdır. Bu amaçla kullanılan, iç içe türün dışarıdan görünür olmaması gerekir.
Mantıksal gruplandırma veya ad çakışmalarını önlemek için dışarıdan görünür iç içe türler kullanmayın; bunun yerine ad alanlarını kullanın.
İç içe türler, bazı programcıların açıkça anlamadığı üye erişilebilirliği gösterimini içerir.
Korumalı türler, önceden özelleştirme senaryolarında alt sınıflarda ve iç içe geçmiş türlerde kullanılabilir.
İhlalleri düzeltme
İç içe türün dışarıdan görünür olmasını düşünmüyorsanız, türün erişilebilirliğini değiştirin. Aksi takdirde, iç içe türü üst öğesinden kaldırın. İç içe yerleştirmenin amacı iç içe türü kategorilere ayırmaksa, bunun yerine hiyerarşiyi oluşturmak için bir ad alanı kullanın.
Uyarıların ne zaman bastırılması gerekiyor?
Bu kuraldan uyarıyı bastırmayın.
Örnek
Aşağıdaki örnekte kuralı ihlal eden bir tür gösterilmektedir.
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