我从库中有以下方法:
IRuleBuilderOptions<T1, T2> MustAsync<T1, T2>(this IRuleBuilder<T1, T2> ruleBuilder, Func<T2, CancellationToken, Task<bool>> predicate);
我用它如下:
.MustAsync((t2, token) => someAsyncMethodThatReturnsTaskBoolean());
但是我无法否定这个方法:
.MustAsync((t2, token) => !someAsyncMethodThatReturnsTaskBoolean());
因为我收到错误:
Operator "!" cannot be applied to operand of type Task<bool>
我无法更改方法,因为它来自外部库。
我该如何解决这个问题?
答案 0 :(得分:3)
async (t2, token) => !(await someAsyncMethodThatReturnsTaskBoolean())
这将完成任务并应用你的!结果(即布尔值)而不是任务本身。