0

我更新了 Visual Studio,现在收到很多这样的消息:

public ICommand OpenWebPageCmd => new Command<string>(async (url) =>
{
   await Browser.OpenAsync(new Uri(url), BrowserLaunchMode.SystemPreferred);
});

异步方法“匿名”不应返回 void

我看到了一些不特定于此扩展的其他答案。使用浏览器选项打开新页面时,有什么办法可以解决这个问题?

4

1 回答 1

0

正如这里的答案所解释的那样

async await 只兼容,Func<Task>或者Func<Task<T>>如果你没有,那么你有什么被认为是“Async void”,你不应该这样做。

由于Browser.OpenAsyncreturn aTask而不是 aFunc<Task>你有两个选择

  1. 不等待任务:

     public ICommand OpenWebPageCmd => new Command<string>((url) =>
     {
      Browser.OpenAsync(new Uri(url), BrowserLaunchMode.SystemPreferred);
     });
    
  2. 使用更好的支持异步函数的委托命令。就像Stephen Cleary编写的Nito.Mvvm.Async NuGet 包中的 AsyncCommand 一样。

有关更多信息,请阅读此处接受的答案

于 2019-04-09T09:38:33.623 回答