Вопрос
у меня есть этот фрагмент
private void westButton_click(object sender, EventArgs ea)
{
PlayerCharacter.Go(Direction.West);
}
повторяется для Севера, Юга и Востока.
Как я могу объявить функцию, которая позволит мне программно генерировать такие методы, как ir?
например, я хотел бы иметь возможность позвонить
northButton.Click += GoMethod(Direction.North);
вместо определения метода, а затем
northButton.Click += new EventHandler(northButton.Click);
Решение
northButton.Click += (s, e) => GoMethod(Direction.North);
(или...)
northButton.Click += (s, e) => PlayerCharacter.Go(Direction.North);
Другие советы
Кажется, я нашел решение:
private EventHandler GoMethod(Direction dir)
{
return new EventHandler((object sender, EventArgs ea) => PlayerCharacter.Go(dir));
}
Меня беспокоит только время связывания;если PlayerCharacter null
когда я вызываю GoMethod, что произойдет?
northButton.Click += (s,e) => GoMethod(Direction.North);
Не связан с StackOverflow