CA1034: A beágyazott típusok nem lehetnek láthatók
Tulajdonság | Érték |
---|---|
Szabályazonosító | CA1034 |
Cím | A beágyazott típusok nem láthatók |
Kategória | Design |
A javítás kompatibilitástörő vagy nem törik | Törés |
Alapértelmezés szerint engedélyezve a .NET 8-ban | Nem |
Ok
A külsőleg látható típus egy külsőleg látható típusdeklarációt tartalmaz. A beágyazott enumerálások, a védett típusok és a szerkesztőminták mentesülnek a szabály alól.
Szabály leírása
A beágyazott típus egy másik típus hatókörén belül deklarált típus. A beágyazott típusok hasznosak a benne található típus privát implementálási részleteinek beágyazására. Az erre a célra használt beágyazott típusok nem lehetnek külsőleg láthatók.
Ne használjon külsőleg látható beágyazott típusokat a logikai csoportosításhoz vagy a névütközések elkerüléséhez; ehelyett használjon névtereket.
A beágyazott típusok magukban foglalják a tagok akadálymentességének fogalmát, amelyet egyes programozók nem értenek egyértelműen.
A védett típusok az alosztályokban és a beágyazott típusokban használhatók az előzetes testreszabási forgatókönyvekben.
Szabálysértések kijavítása
Ha nem szeretné, hogy a beágyazott típus külsőleg látható legyen, módosítsa a típus akadálymentességét. Ellenkező esetben távolítsa el a beágyazott típust a szülőből. Ha a beágyazás célja a beágyazott típus kategorizálása, használjon névteret a hierarchia létrehozásához.
Mikor kell letiltani a figyelmeztetéseket?
Ne tiltsa el a szabály figyelmeztetését.
Példa
Az alábbi példa egy szabályt sértő típust mutat be.
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