Вам необходимо подписаться на событие с помощью обработчика.Например:
BallClass ball = new BallClass();
ball.BallInPlay += BallInPlayHandler;
// Now when ball.OnHit is called for whatever reason, BallInPlayHandler
// will get called
...
private void BallInPlayHandler(Object sender, EventArgs e)
{
// React to the event here
}
Для получения дополнительной информации вы можете прочитать мою статью о событиях и делегатах .
Обратите внимание, что я исправил регистр BallClass
и OnHit
выше - это хорошая идея использовать стандартные соглашения об именах .NET, чтобы ваш код лучше подходил к коду и делал его более читаемым для других.
Одна вещьна заметку: проверка на нуль, которую вы получили в данный момент, не является поточно-ориентированной.Последний подписчик мог отписаться после if
, но до вызова.Потокобезопасная версия будет выглядеть следующим образом:
public void OnHit()
{
EventHandler handler = BallInPlay;
if (handler != null)
{
handler(this, new EventArgs());
}
else
{
MessageBox.Show("null!");
}
}
Не гарантируется использование последних подписчиков (так как не задействован барьер памяти), но - это , гарантированно не выбрасывающийNullReferenceException из-за условий гонки.