我有一个Dictionary
具有KeyCode
作为键和Action<int>
作为值的h,但是我想Action
在字典初始化时给出参数,如下所示:
someDictionary = new Dictionary<KeyCode, Action<int>>()
{
{KeyCode.Alpha1, GoToCameraPosition(0) },
};
我怎样才能做到这一点 ?
这称为currying。请注意,第二个类型参数Dictionary
已从原始类型更改为:您创建的动作没有参数,因为它调用的动作的参数内置在字典中存储的匿名lambda中。
someDictionary = new Dictionary<KeyCode, Action>()
{
{KeyCode.Alpha1, () => GoToCameraPosition(0) },
};
像这样打电话:
KeyCode key = KeyCode.Alpha1;
Action act = null;
if (someDictionary.TryGetValue(key, out act))
{
// act is a method that calls GoToCameraPosition(0)
act();
}
或者
foreach (var kvp in someDictionary)
{
kvp.Value();
}
或者,如果您确定它在那里,那么...
someDictionary[KeyCode.Alpha1]();
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句