У меня есть словарь действий, который определяется как:
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 Только назначение, вызов, приращение, декремент и новый объект выражения могут быть использованы как Заявление
actions[pair.Key](pair.Value, pair.Key)
не вызов? Я что-то упустил? Можно ли использовать '?' обозначение с помощью словарей действия? Я пытался найти что-то по этому поводу, но трудно найти что-нибудь о "?". оператора и этой ошибки, потому что '?' Google игнорируется.