Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
TypeName |
InitializeValueTypeStaticFieldsInline |
CheckId |
CA2207 |
<strong>Categoria</strong> |
Microsoft.Usage |
Alteração significativa |
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 do tipo de valor são definidos como zero e todos os campos do tipo de referência são definidos como null (Nothing em Visual Basic).Um construtor estático explícito só é garantido para ser executado antes de um construtor de instância ou um 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 é garantido para ser executado.
Se todos os dados estáticos é inicializado in-line e nenhum construtor estático explícita é declarado, os compiladores de C# e Visual Basic adicionam o beforefieldinit sinalizador para a definição de classe MSIL.Os compiladores também adicionar um construtor estático particular que contém o código de inicialização estática.Este construtor estático privado é garantido para ser executado antes de qualquer campo estático do tipo é acessado.
Como corrigir violações
Para corrigir uma violação desta regra inicializar todos os dados estáticos quando ele é declarado e remover o construtor estático.
Quando suprimir avisos
Não suprimir um aviso da regra.