public void OnBallInPlay(BallEventArgs e) { /* BallInPlay копируется в переменную ballInPlay, * кот-я гарантированно не имеет значения null * и используется для вызова события*/ EventHandler ballInPlay = BallInPlay; if (BallInPlay != null) // закреплен ли за событием обработчик { ballInPlay(this, e); // вызов события } }
private void Ball_BallInPlay(object sender, EventArgs e) { if (e is BallEventArgs) { BallEventArgs ballEventArgs = e as BallEventArgs; if ((ballEventArgs.Distance < 95) && (ballEventArgs.Trajectory < 80)) { CatchBall(); } else { CoverFirstBase(); } } }