如何向 || 右侧的区域添加等待在"if (count == 0 || await MainPage.DisplayAlert"



我有这个代码:

public async Task ReviewAppAsync(int count)
{
await Task.Delay(60000);
if (count == 0 || await MainPage.DisplayAlert("Review", "abc", "Yes", "No"))
{
//  some code here
}
}

我只想在计数不为零时等待。

如何移动第一个等待任务延迟(60000(;

这样它只会延迟:MainPage.DisplayAlert("Review", "abc", "Yes", "No"((?

这里最好的选择是稍微重构一下 - 也许通过本地函数:

public async Task ReviewAppAsync(int count)
{
async Task<bool> DelayAndDisplayAlert()
{
await Task.Delay(60000);
return await MainPage.DisplayAlert("Review", "abc", "Yes", "No");
}
if (count == 0 || await DelayAndDisplayAlert())
{
//  some code here
}
}

有一些方法可以在没有额外调用的情况下做到这一点,但是...他们会凌乱和丑陋;将碎片移动到单独的方法中要干净得多。如果使用的是较旧版本的 C#,则可能需要将DelayAndDisplayAlert移到方法之外:

async Task<bool> DelayAndDisplayAlert()
{
await Task.Delay(60000);
return await MainPage.DisplayAlert("Review", "abc", "Yes", "No");
}
public async Task ReviewAppAsync(int count)
{
if (count == 0 || await DelayAndDisplayAlert())
{
//  some code here
}
}

最新更新