c#初始化时将参数传递给字典中的动作
本文关键字:字典 初始化 参数传递 | 更新日期: 2023-09-27 18:01:26
我有一个Dictionary
,其中KeyCode
为键,Action<int>
为值,但是我想在字典初始化时给出Action
参数,如下所示:
someDictionary = new Dictionary<KeyCode, Action<int>>()
{
{KeyCode.Alpha1, GoToCameraPosition(0) },
};
这叫做套用。请注意,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]();