我将动作字典定义为:
var actions = new Dictionary<string, Action<string, string>>();
我把动作放在那里:
actions.Add("default", (value, key) => result.Compare(value, properties[key], Comparers.SomeComparer, key));
...
我正在使用此代码来运行它:
if (actions.ContainsKey(pair.Key))
{
actions[pair.Key](pair.Value, pair.Key);
}
else
{
actions[""](pair.Value, pair.Key);
}
它工作得很好,但我想使用'?符号使其更短:
actions.ContainsKey(pair.Key) ? actions[pair.Key](pair.Value, pair.Key) : actions[""](pair.Value, pair.Key);
此代码向我显示错误:
错误1 只有赋值、调用、递增、递减和new对象表达式可以作为语句使用
actions[pair.Key](pair.Value, pair.Key)
不是电话吗?我错过了什么吗?是否可以使用'?动作字典的符号?我试图找到一些关于它的东西,但很难找到关于“?”的任何东西。运算符和此错误是因为 '?' 被谷歌忽略。