Megosztás a következőn keresztül:


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