Mas*_*ver 3 c# func nullreferenceexception task-parallel-library async-await
func<Task>我的项目中有代表可以为空。有没有办法使这样一个委托的调用更简单,如下所示?
public async Task Test()
{
Func<Task> funcWithTask = null;
await (funcWithTask != null ? funcWithTask.Invoke() : Task.CompletedTask);
}
Run Code Online (Sandbox Code Playgroud)
有没有办法使这样一个委托的调用更简单,如下所示?
有替代方案:
if (funcWithTask != null) await funcWithTask();
Run Code Online (Sandbox Code Playgroud)
或者:
await (funcWithTask?.Invoke() ?? Task.CompletedTask);
Run Code Online (Sandbox Code Playgroud)
第二个使用空条件运算符 ?.,它只Invoke()在funcWithTask不为空时调用,以及空合并运算符 ??,当左手操作数为空时返回右手操作数(Task.CompletedTask在这种情况下)。
| 归档时间: |
|
| 查看次数: |
87 次 |
| 最近记录: |