Usar eventos onde for apropriado
TypeName |
UseEventsWhereAppropriate |
CheckId |
CA1030 |
Category (Categoria) |
Microsoft.Design |
Quebrando alterar |
Não separável |
Causa
Um nome de método pública, protegida ou particular começa com um destes procedimentos:
Complemento
RemoveOn
Incêndio
Aumentar
Descrição da regra
Essa regra detecta os métodos que possuem nomes que normalmente seriam usados para eventos.Eventos seguem o padrão de design observador ou inscrever publicar; elas são usadas quando uma alterar no estado em um objeto deve ser comunicada a outros objetos.Se um método é chamado em resposta a uma alterar de estado claramente definido, o método deve ser chamado por um manipulador de eventos.Objetos que chame o método devem disparar eventos em vez de chamar o método diretamente.
Alguns exemplos comuns de eventos são encontrados em aplicativos de interface de usuário em que uma ação do usuário, sistema autônomo clicar um botão faz com que um segmento de código seja executado.The .NET Framework modelo de evento não é limitado a interfaces de usuário; ele deve ser usado em qualquer lugar, que você deve comunicar o estado muda para um ou mais objetos.
Como corrigir violações
Se o método é chamado quando o estado de um objeto for alterado, considere alterar o design para usar o .NET Framework modelo de evento.
Quando suprimir avisos
Eliminar um aviso essa regra se o método não funcionar com o .NET Framework modelo de evento.
Exemplo
O exemplo a seguir mostra um método que tenta se comunicar uma alterar de estado (no caso, seu tipo declarativo, catálogo, foi fechado) ao chamar um delegado.
using System;
namespace Samples
{
public delegate void ClosedCallback(Book book);
public class Book
{
private ClosedCallback _ClosedCallback;
// Violates this rule
public void AddOnClosed(ClosedCallback callback)
{
_ClosedCallback = callback;
}
public void Close()
{
_ClosedCallback(this);
}
}
}
A seguinte classe corrige o exemplo acima, alterando para o modelo de eventos do .NET estrutura.