System.Action委托忽略参数?

时间:2015-10-11 08:31:45

标签: c# unity3d delegates

我有这个:

public event Action<BaseCommodity> OnGatherActionSelected = delegate { };
gmp.OnGatherActionSelected += m_Worker.CharacterActions.StartGatherMaterials; // << takes a parameter

但现在我想使用该事件来调用一个接受0参数的方法

gmp.OnGatherActionSelected += ParentPanel.RedrawUI; // does not take parameters .. DOES NOT WORK :(

我该怎么做?

2 个答案:

答案 0 :(得分:6)

最简单的选择是添加一个处理参数并忽略它的处理程序,委托给你想要使用的方法:

gmp.OnGatherActionSelected += _ => ParentPanel.RedrawUI();

答案 1 :(得分:4)

您可以将其包装在带参数的方法中:

gmp.OnGatherActionSelected += x => ParentPanel.RedrawUI();