//public void OnBallInPlay(EventHandler<BallEventArgs> e) /* EventHandler está dizendo para outros métodos que seus manipuladores de evento precisam ter dois parâmetros: Um 'objet sender' e uma referência a 'EventArgs e' */ // MÉTODO QUE DISPARA O EVENTO protected void OnBallInPlay(BallEventArgs e) { //if (BallInPlay != null) //{ // BallInPlay(this, e); //} // ↑↑↑ MESMO TRATAMENTO ↓↓↓ BallInPlay?.Invoke(this, e); }
private void button1_Click(object sender, EventArgs e) { Console.WriteLine("****************************"); Bat bat = bola.GetNewBat(); BallEventArgs ballEventArgs = new BallEventArgs( (int)numericUpDown2.Value, (int)numericUpDown1.Value); bat.HitTheBall(ballEventArgs); Console.WriteLine("****************************"); }
// DISPARA O EVENTO public void HitTheBall(BallEventArgs e) { //if (hitBallCallback != null) //{ // hitBallCallback(e); //} // ↑↑↑ MESMO TRATAMENTO ↓↓↓ hitBallCallback?.Invoke(e); /////// if (e.Distancia <= 80 && e.Trajetoria >= 50) { Console.WriteLine("Bola atingida pelo Bastão"); } else { Console.WriteLine("Batedor não acertou a bola"); } }