0

这有效,仅当成员不为空时才调用 Invoke:

List<Command> list = GetCommands();
list.FirstOrDefault(predicate)?.Invoke();

有条件地调用属性设置器不起作用:

list.FirstOrDefault(predicate)?.IsAvailable = true;

相反,必须包括显式空检查:

var command = list.FirstOrDefault(predicate);
if (command != null)
    command.IsAvailable = true;

我认为对于二传手来说这很有意义,因为它本质上是语法糖:

list.FirstOrDefault(predicate)?.set_IsAvailable(true);

是否有以对象不为空为条件设置对象属性的内联语法?

4

0 回答 0