CA1030: Usar eventos quando apropriado

Property Valor
ID da regra CA1030
Título Usar eventos quando apropriado
Categoria Projetar
Correção interruptiva ou sem interrupção Sem interrupção
Habilitado por padrão no .NET 8 Não

Causa

Um nome de método começa com um dos seguintes:

  • AddOn
  • RemoveOn
  • Fire
  • Raise

Por padrão, essa regra analisa apenas os métodos externamente visíveis, mas isso é configurável.

Descrição da regra

Essa regra detecta métodos que têm nomes que seriam usados normalmente em eventos. Os eventos seguem o padrão de design Observer ou Publish-Subscribe; eles são usados quando uma alteração de estado em um objeto deve ser comunicada a outros objetos. Se um método for chamado em resposta a uma alteração de estado claramente definida, o método deverá ser invocado por um manipulador de eventos. Os objetos que chamam o método devem acionar eventos, em vez de chamar o método diretamente.

Alguns exemplos comuns de eventos são encontrados em aplicativos de interface do usuário em que uma ação do usuário, como clicar em um botão, faz com que um segmento de código seja executado. O modelo de evento .NET não está limitado a interfaces do usuário. Ele deve ser usado em qualquer lugar onde seja necessário comunicar alterações de estado a um ou mais objetos.

Como corrigir violações

Se o método for chamado quando o estado de um objeto for alterado, considere alterar o design para usar o modelo de evento .NET.

Quando suprimir avisos

Suprima um aviso dessa regra se o método não funcionar com o modelo de evento .NET.

Suprimir um aviso

Para suprimir apenas uma violação, adicione diretivas de pré-processador ao arquivo de origem a fim de desabilitar e, em seguida, reabilitar a regra.

#pragma warning disable CA1030
// The code that's violating the rule is on this line.
#pragma warning restore CA1030

Para desabilitar a regra em um arquivo, uma pasta ou um projeto, defina a severidade como none no arquivo de configuração.

[*.{cs,vb}]
dotnet_diagnostic.CA1030.severity = none

Para obter mais informações, confira Como suprimir avisos de análise de código.

Configurar código para analisar

Use a opção a seguir para configurar em quais partes da base de código essa regra deve ser executada.

Você pode configurar essa opção apenas para essa regra, para todas as regras às quais ela se aplica ou para todas as regras nessa categoria (Design) às quais ela se aplica. Para saber mais, confira Opções de configuração de regra de qualidade de código.

Incluir superfícies de API específicas

É possível configurar em quais partes da base de código essa regra deverá ser executada, com base na acessibilidade. Por exemplo, para especificar que a regra deverá ser executada apenas na superfície de API não pública, adicione o seguinte par chave-valor a um arquivo .editorconfig no projeto:

dotnet_code_quality.CAXXXX.api_surface = private, internal