У меня есть следующее:
класс игры
class Game
{
public event EventHandler GameOver;
public void go()
{
PlayerAliveEventArgs playerAlive = new PlayerAliveEventArgs(Alive);
GameOver(this, playerAlive);
}
}
, тогда у меня есть класс
public class PlayerAliveEventArgs : EventArgs
{
public bool Alive { get; set; }
public PlayerAliveEventArgs(bool deadOrAlive)
{
Alive = deadOrAlive;
}
}
в другом классе, я привязываю метод к событию...
public void Form_Load()
{
game.GameOver += Form1_GameOverMethod; // it shows the error here.
it says no overload of this method matches System.Eventhandler
}
public void Form1_GameOverMethod(object sender, PlayerAliveEventArgs e)
{
if (!e.Alive)
{
GameTimer.Enabled = false;
gameOver = true;
Refresh();
}
}
Ошибка:
В этом контексте метод не существует.
Почему это так?
хорошо, я сделал следующие изменения:
public void Form1_GameOverMethod(object sender, EventArgs e)
{
PlayerAliveEventArgs d = (PlayerAliveEventArgs)e;
if (!d.Alive)
{
}
}
теперь все в порядке?или это вызовет некоторые проблемы при запуске (я хочу избавиться от отладки последнего на ..)