CA2207: Értéktípus statikus mezőinek inicializálása beágyazottan
Tulajdonság | Érték |
---|---|
Szabályazonosító | CA2207 |
Cím | Értéktípus statikus mezőinek inicializálása beágyazottan |
Kategória | Használat |
A javítás kompatibilitástörő vagy nem törik | Nem törés |
Alapértelmezés szerint engedélyezve a .NET 8-ban | Nem |
Ok
Az értéktípus explicit statikus konstruktort deklarál.
Szabály leírása
Amikor egy értéktípus deklarálva van, az alapértelmezett inicializáláson megy keresztül, ahol az összes érték típusú mező nullára van állítva, és az összes referencia típusú mező (Nothing
a Visual Basicben) értékre van állítva null
. Az explicit statikus konstruktorok csak a példánykonstruktor vagy a típus statikus tagjának meghívása előtt futnak. Ezért ha a típus példánykonstruktor meghívása nélkül jön létre, a statikus konstruktor nem garantáltan fut.
Ha minden statikus adat inicializálva van, és nincs explicit statikus konstruktor deklarálva, a C# és a Visual Basic fordítói hozzáadják a beforefieldinit
jelölőt a CIL osztálydefinícióhoz. A fordítók egy privát statikus konstruktort is hozzáadnak, amely tartalmazza a statikus inicializálási kódot. Ez a privát statikus konstruktor garantáltan futni fog, mielőtt a típus bármely statikus mezője elérhető lesz.
Szabálysértések kijavítása
A szabály megsértésének kijavításához inicializálja az összes statikus adatot a deklaráláskor, és távolítsa el a statikus konstruktort.
Mikor kell letiltani a figyelmeztetéseket?
Ne tiltsa el a szabály figyelmeztetését.
Kapcsolódó szabályok
CA1810: Referenciatípus statikus mezőinek inicializálása beágyazottan
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: