Compartilhar via


Inicializar valor tipo campos estático embutido

TypeName

InitializeValueTypeStaticFieldsInline

CheckId

CA2207

Category (Categoria)

Microsoft.uso

Quebrando alterar

Não separável

Causa

Um tipo de valor declara um construtor estático explícito.

Descrição da regra

Quando um tipo de valor é declarado, passa por uma inicialização padrão onde todos os campos de tipo de valor são definidos como zero e todos os campos de tipo de referência são definidos como null (Nothing no Visual Basic). Um construtor estático explícito só é garantido executar antes de um construtor de instância ou membro estático do tipo é chamado.Portanto, se o tipo for criado sem chamar um construtor de instância, o construtor estático não certamente executar.

Se todos os dados estáticos é inicializado in-line e nenhum construtor estático explícita é declarado, os compiladores translation from VPE for Csharp e Visual Basic adicionar o beforefieldinit sinalizar para a definição da classe MSIL. Os compiladores também adicionar um particular construtor estático que contém o código de inicialização estática.Esse construtor privado estático é garantido para ser executado antes de quaisquer campos do tipo estáticos são acessados.

Como corrigir violações

Para corrigir uma violação dessa regra inicializar todos os dados estáticos quando ele é declarado e remova o construtor estático.

Quando suprimir avisos

Não suprimir um aviso da regra.

Regras relacionadas

Inicializar in-line campos estático de tipo de referência