Volviendo una función en C #
-
12-09-2019 - |
Pregunta
Tengo este fragmento
private void westButton_click(object sender, EventArgs ea)
{
PlayerCharacter.Go(Direction.West);
}
repetida de Norte, Sur y Este.
¿Cómo puedo declarar una función que me dejaran ir genero métodos como la programación?
por ejemplo., Me gustaría ser capaz de llamar
northButton.Click += GoMethod(Direction.North);
en lugar de definir el método, y después
northButton.Click += new EventHandler(northButton.Click);
Solución
northButton.Click += (s, e) => GoMethod(Direction.North);
(o ...)
northButton.Click += (s, e) => PlayerCharacter.Go(Direction.North);
Otros consejos
Me parece haber encontrado una solución:
private EventHandler GoMethod(Direction dir)
{
return new EventHandler((object sender, EventArgs ea) => PlayerCharacter.Go(dir));
}
Mi única preocupación sería hora de la unión; si es PlayerCharacter null
cuando llamo GoMethod, ¿qué pasaría?
northButton.Click += (s,e) => GoMethod(Direction.North);
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow