如何使用 await 简单安全地调用可空委托
How to simple and safe call a nullable delegate with await
我的项目中有 func<Task>
个委托,它们可以为空。有什么方法可以使这样的委托的调用更简单,如下所示?
public async Task Test()
{
Func<Task> funcWithTask = null;
await (funcWithTask != null ? funcWithTask.Invoke() : Task.CompletedTask);
}
Is there any way to make the call of such a delegate simpler as displayed below?
还有其他选择:
if (funcWithTask != null) await funcWithTask();
或:
await (funcWithTask?.Invoke() ?? Task.CompletedTask);
第二个使用 null-conditional operator ?.
, which only calls Invoke()
when funcWithTask
is not null, and the null-coalescing operator ??
当左侧操作数为空时 returns 右侧操作数(在本例中为 Task.CompletedTask
)。
我的项目中有 func<Task>
个委托,它们可以为空。有什么方法可以使这样的委托的调用更简单,如下所示?
public async Task Test()
{
Func<Task> funcWithTask = null;
await (funcWithTask != null ? funcWithTask.Invoke() : Task.CompletedTask);
}
Is there any way to make the call of such a delegate simpler as displayed below?
还有其他选择:
if (funcWithTask != null) await funcWithTask();
或:
await (funcWithTask?.Invoke() ?? Task.CompletedTask);
第二个使用 null-conditional operator ?.
, which only calls Invoke()
when funcWithTask
is not null, and the null-coalescing operator ??
当左侧操作数为空时 returns 右侧操作数(在本例中为 Task.CompletedTask
)。