Qual é a prática preferida para argumentos de evento fornecidos por eventos personalizados?

StackOverflow https://stackoverflow.com/questions/102052

  •  01-07-2019
  •  | 
  •  

Pergunta

No que diz respeito a eventos personalizados em .NET, que é o padrão de design preferido para passar argumentos de evento? Se você tiver um EventArgs classe derivado separado para cada evento que pode ser levantada, ou é aceitável ter uma única classe para os eventos se eles estão todos criados por eventos da mesma classe?

Foi útil?

Solução

Você não precisa ter um EventArgs separados classe derivadas para cada evento. É perfeitamente aceitável e até desejável usar classes EventArgs derivadas existente em vez de reinventar a roda.

Essas classes quadro poderia ser existentes (por exemplo System.Component.CancelEventArgs se tudo que você quer fazer é dar o manipulador de eventos a possibilidade de cancelar uma acção.

Ou você pode criar suas classes próprias EventArgs derivados se você tem dados específicos para seu aplicativo para passar para manipuladores de eventos. Não há nenhuma razão para que dois eventos da mesma classe ou classes diferentes não devem usar a classe mesmos EventArgs-derivada, se eles estão enviando os mesmos dados.

Outras dicas

Eu normalmente criar uma classe EventArgs base que tem dados comuns para cada evento. Se um evento em particular tem mais dados associados a ele, eu criar uma subclasse para esse evento; caso contrário, eu só uso a classe base.

Depende do que os eventos são, mas em sua maior parte, por uma questão de quem vai consumir os seus eventos, criar uma única classe personalizada decorrente EventArgs.

Eu, como OAB, criar um personalizado classe args 'base' que se estende EventArgs adicionando específica de dados para o componente ou aplicativo que eu usá-lo em. Por exemplo em um aplicativo de exportação, representando, meus ExportEventArgs bases gostaria de acrescentar uma propriedade AccountNo.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top