我有这个片段

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);
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top