我有以下实现并Async Task<bool>在方法中添加了一个操作ChangeDate(),以前它只是bool.
在下面的行中if (!ChangeDate())
操作员 !不能应用于任务类型的操作数
public DateTime Date
{
get { return _date; }
set
{
if (!ChangeDate())
{
return;
}
_date = value.Date;
}
}
private async Task<bool> ChangeDate()
{
if (IsSave)
{
await Mvx.Resolve<IUserDialogs>().ConfirmAsync(new ConfirmConfig
{
Message = "Are you sure ?",
OnConfirm = b =>
{
if (b)
{
Save();
}
}
});
}
return true;
}
Run Code Online (Sandbox Code Playgroud)
use*_*598 12
找到这个答案: How to make an Asynchronous Method return a value?
您需要创建一个异步辅助方法,并调用它而不是仅调用您的 setter,因为正如 @Ron Beyer 指出的那样,await 调用在属性中不起作用。
代替:
if(!ChangeDate())
Run Code Online (Sandbox Code Playgroud)
和:
if( !(await ChangeDate()) )
Run Code Online (Sandbox Code Playgroud)