无法修复异步上的返回类型

本文关键字:返回类型 异步 | 更新日期: 2023-09-27 17:56:36

我目前遇到了这个问题和这个错误:

  • 问题:我无法弄清楚如何解决我遇到的错误,即使我在 Google 搜索等上阅读了有关它的文档。 真的,不要告诉我再这样做了,我不知道该怎么做!

  • 错误:异步方法的返回类型必须为 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;
}

无法修复异步上的返回类型

错误准确地告诉您问题是什么。您的方法必须是 voidTaskTask<T>

将方法签名更改为:

private async Task<Geoposition> userLocation() { ... }

正如错误试图告诉你的那样:你需要将函数的返回类型更改为 task,所以它看起来像这样:

private async Task<Geoposition> userLocation

当你使用async时,你应该返回一个TaskTask<T>void

private async Task<Geoposition> userLocation()
{
    //Do something here
}

您可以查看有关异步返回类型的文档