【发布时间】:2016-11-09 21:43:26
【问题描述】:
我从库中获得了以下方法:
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>
我无法更改方法,因为它来自外部库。
我该如何解决这个问题?
【问题讨论】:
-
^ 似乎是同样的问题 -
async... 另外,您的意思是“操作数”吗? -
在这种情况下,“运算符'!='中的答案不能应用于'Task'和'int'类型的操作数”并不能解决问题
-
使用
asynclambda 和await,例如.MustAsync(async (t2, token) => !await someAsyncMethodThatReturnsTaskBoolean()); -
@IvanStoev 这就是答案。可以加一下吗?
-
我不能,因为问题已作为重复而关闭。没关系,问题解决了:)
标签: c#