我目前仍然遇到此问题并出现此错误:
问题:我无法弄清楚如何解决我得到的错误,即使我在谷歌搜索等上阅读有关它的文档。真的,不要告诉我再这样做,我不知道不知道怎么做!
错误:异步方法的返回类型必须为void,任务或任务
代码:
private async Geoposition userLocation() { Geolocator geolocator = new Geolocator(); geolocator.DesiredAccuracyInMeters = 50; try { Geoposition geoposition = await geolocator.GetGeopositionAsync(maximumAge:TimeSpan.FromMinutes(5),timeout:TimeSpan.FromSeconds(10)); return geoposition; } catch (UnauthorizedAccessException) { return null; } return null; }
答案 0 :(得分:4)
该错误正在告诉您究竟是什么问题。您的方法必须是void
,Task
或Task<T>
。
将您的方法签名更改为:
private async Task<Geoposition> userLocation() { ... }
答案 1 :(得分:2)
由于错误试图对您说:您需要将函数的返回类型更改为任务,因此它将如下所示:
private async Task<Geoposition> userLocation
答案 2 :(得分:2)
当您使用async
时,您应该返回Task
,Task<T>
或void
。
private async Task<Geoposition> userLocation()
{
//Do something here
}
您可以查看this documentation有关异步返回类型
的信息