CA2207: Inicializujte vloženou hodnotu statických polí
Název_typu |
InitializeValueTypeStaticFieldsInline |
CheckId |
CA2207 |
Kategorie |
Microsoft.Usage |
Změnit rozdělení |
Bez rozdělení |
Příčina
Typ hodnoty prohlašuje explicitní statický konstruktor.
Popis pravidla
Když je deklarován typ hodnoty, kterými projde výchozí inicializace, kde všechna pole Typ hodnoty jsou nastaveny na nulu a všechna pole v typu odkazu jsou nastavena na null (Nothing v jazyce Visual Basic).Explicitní statický konstruktor pouze zaručena spustit před konstruktoru instance nebo statický člen typu se nazývá.Proto pokud typ bez volání konstruktoru instance statický konstruktor není zaručena spustit.
Pokud všechny statické data vložené inicializována a je deklarován žádný explicitní statický konstruktor, přidat kompilátorů C# a Visual Basic beforefieldinit příznak MSIL definice třídy.Kompilátory přidat také soukromé statický konstruktor obsahuje kód statických inicializací.Tento soukromý statický konstruktor je zaručena spustit dříve, než jsou přístupné všechny statické pole typu.
Jak opravit porušení
Oprava porušení tohoto pravidla inicializovat všechny statická data je deklarována, a odebrat statický konstruktor.
Při potlačení upozornění
Nepotlačovat upozornění od tohoto pravidla.