当您使用 VS2017 创建 Xamarin Forms Master-Detail 示例时,您将获得一个 MockDataStore 类,该类使用以下方法生成
public async Task<bool> DeleteItemAsync(string id)
{
var _item = items.Where((Item arg) => arg.Id == id).FirstOrDefault();
items.Remove(_item);
return await Task.FromResult(true);
}
Run Code Online (Sandbox Code Playgroud)
说这是一个微软的例子感觉很幼稚,因此它一定是对的。
我不明白为什么这些方法不只是return true而且我还没有看到这个习语解释。我在这里遗漏了什么微妙的东西,或者这是一个应该从模板中清除的历史性解决方法?
我想这背后的原因是为了防止“异步方法缺少等待运算符”编译器警告。这个自动生成代码的作者想要标记 function async,因为当你实现真正的功能时,无论如何你都会这样做。所以为了防止编译器警告(没有自动生成的代码应该生成编译器警告)你需要等待一些东西,并且在他们的代码中没有什么可以等待,所以他们选择了 await Task.FromResult。
当然,当您自己编写代码而不是自动生成以供将来编辑时 - 您不需要这样做。
| 归档时间: |
|
| 查看次数: |
1970 次 |
| 最近记录: |