public frmGerenciadorLatidosCachorros() { InitializeComponent(); _gerenciadorLatidos = new GerenciadorLatidos(); /* A implementação abaixo foi comentada para dar lugar ao uso de expressões lambda, * implementadas no trecho abaixo dos comentários. * //Ao instanciar a classe do gerenciador, métodos desta classe assinam o evento, no padrão * //já visto dos delegates. * _gerenciadorLatidos.ExcessoDecibeisEvent += QuandoExcederDecibeis; * _gerenciadorLatidos.ExcessoDecibeisEvent += QuandoExcederDecibeisDeNovo; */ /* As linhas abaixo foram criadas na aula sobre expressões lambda, mais especificamente, métodos * anônimos. Aqui, as linhas que estão comentadas acima foram substituídas pela implementação abaixo, * onde se cria diretamente a lógica do método com um método anônimo. Desta forma, os métodos * QuandoExcederDecibeis e QuandoExcederDecibeisDeNovo nunca são chamados e poderiam ser apagados. * A vantagem disso é justamente tornar o código mais limpo e uma classe não tão cheia de métodos. */ _gerenciadorLatidos.ExcessoDecibeisEvent += (sender, args) => { ExcessoDecibeisEventArgs eventArgs = (ExcessoDecibeisEventArgs)args; MessageBox.Show(string.Format("O cachorro passou dos limites com {0} dB.", eventArgs.IntensidadeLatido), "Excesso de decibéis", MessageBoxButtons.OK, MessageBoxIcon.Warning); }; _gerenciadorLatidos.ExcessoDecibeisEvent += (sender, args) => { MessageBox.Show("Você será multado", "Excesso de decibéis", MessageBoxButtons.OK, MessageBoxIcon.Warning); }; }
public rfmGerenciador() { InitializeComponent(); _gerenciadorLatidos = new GerenciadorLatidos(); _gerenciadorLatidos.ExcessoDecibeisEvent += (sender, args) => { ExcessoDecibeisEventsArgs arg = (ExcessoDecibeisEventsArgs)args; MessageBox.Show(string.Format("O cão passou dos limites. {0} decibeis.", arg.IntensidadeLatido), "Excesso de latidos", MessageBoxButtons.OK, MessageBoxIcon.Warning); }; }
public frmGerenciadorLatidos() { InitializeComponent(); _gerenciadorLatidos = new GerenciadorLatidos(); _gerenciadorLatidos.ExcessoDecibeisEvent += (sender, args) => { ExcessoDecibeisEventArgs eventArgs = (ExcessoDecibeisEventArgs)args; MessageBox.Show(string.Format("O cachorro passou dos limites, com {0} decibeis. ", eventArgs.IntensidadeLatido, "Excesso de decibéis", MessageBoxButtons.OK, MessageBoxIcon.Warning)); }; _gerenciadorLatidos.ExcessoDecibeisEvent += (sender, args) => { MessageBox.Show("Você acbou de levar uma multa ", "Excesso de decibéis", MessageBoxButtons.OK, MessageBoxIcon.Warning); }; }
public frmGerenciadorLatidosCachorros() { InitializeComponent(); _gerenciadorLatidos = new GerenciadorLatidos(); //Adicionando assinantes ao evento _gerenciadorLatidos.ExcessoDecibeisEvent += QuandoExcederDecibeis; //_gerenciadorLatidos.ExcessoDecibeisEvent += QuandoExcederDecibeisDeNovo; //Ao invés de fazer dessa forma, podemos usar um método anônimo //Usando lambda podemos fazer um método anônimo para fazer o que o método QuandoExcederDecibeisDeNovo fazia //Lembrando que delegates events sempre recebem um object "sender" e o argumento do evento "args" _gerenciadorLatidos.ExcessoDecibeisEvent += (sender, args) => { MessageBox.Show("Você acabou de levar uma multa.", "Excesso de decibéis", MessageBoxButtons.OK, MessageBoxIcon.Warning); }; }