[英]Returning a function in C#
我有這個片段
private void westButton_click(object sender, EventArgs ea)
{
PlayerCharacter.Go(Direction.West);
}
對北部,南部和東部重復。
如何聲明一個可以讓我以編程方式生成方法的函數?
例如,我想可以打電話
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);
northButton.Click += (s,e) => GoMethod(Direction.North);
我似乎找到了解決方案:
private EventHandler GoMethod(Direction dir)
{
return new EventHandler((object sender, EventArgs ea) => PlayerCharacter.Go(dir));
}
我唯一關心的是綁定時間。 如果在我調用GoMethod時PlayerCharacter為null
,會發生什么?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.