CA1822: Membros da marca como estático

TypeName

MarkMembersAsStatic

CheckId

CA1822

<strong>Categoria</strong>

Microsoft.Performance

Alteração significativa

Não-separável - se o membro não é visível fora do assembly, independentemente da alteração feitas. Não separável - se você alterar o membro a um membro de instância com o this palavra-chave.

Quebrando - se você alterar o membro de um membro de instância para um membro estático e é visível fora do assembly.

Causa

Um membro que não acessam os dados de instância não está marcado como estático (compartilhado no Visual Basic).

Descrição da regra

Membros que não acessar métodos de instância de dados ou chamada de instância podem ser marcados como estáticos (compartilhado no Visual Basic). Depois de marcar os métodos como estático, o compilador emitirá a sites de chamada nonvirtual para esses membros. Emitir sites de chamada nonvirtual para impedir uma verificação em tempo de execução para cada chamada que certifica-se de que o ponteiro de objeto atual não for nulo. Isso pode obter um ganho de desempenho mensuráveis para o código de desempenho confidenciais. Em alguns casos, a falha para acessar a instância atual do objeto representa um problema de correção.

Como corrigir violações

Marcar o membro como estático (ou compartilhadas em Visual Basic) ou use 'this' / 'Me' no corpo do método, se apropriado.

Quando suprimir avisos

É seguro eliminar um aviso essa regra para que a correção seria uma alteração significativa de código lançado anteriormente.

Regras relacionadas

CA1811: Evite código privado de uncalled

CA1812: Evite sem instância classes internas

CA1804: Remover locals não utilizados