我如何调用异步函数xamarin

本文关键字:异步 函数 xamarin 调用 何调用 | 更新日期: 2023-09-27 18:18:31

我正在尝试调用异步函数,但当我尝试这样做时,它下面有红线。我希望在打开页面时调用该函数,提前感谢。

public partial class Home : ContentPage
{

    public class GoogleProfile
    {
        public string Id { get; set;}
    }

    public Home()
    {
        InitializeComponent();
    }

    protected override async void OnAppearing()
    {
        await Check(/*What do i put in here*/);
    }
    public async Task Check(GoogleProfile googleprofile)
    {

        if (String.IsNullOrEmpty(googleprofile.Id))
        {
        }
        else {
            await Navigation.PushAsync(new LoginPage());
        }
    }


}

怎么命名呢?对不起,我不熟悉c#和xamarin

我如何调用异步函数xamarin

您应该在ContentPage.OnAppearing()中进行异步调用。顾名思义,将在显示页面时调用OnAppearing()事件。这是用户期望的行为。还请注意,我将您的Check()方法更改为返回Task,因为如果您能够编辑方法签名,请始终尝试将异步方法的返回类型从void更改为Task:

public partial class LoginPage : ContentPage {
    public LoginPage() {
        InitializeComponent();
    }
    protected override async void OnAppearing() {
        await Check(/* Add code here to get your GoogleProfile object */);
    }
    public async Task Check(GoogleProfile googleprofile) {
        var ID = googleprofile.Id;
        if (string.IsNullOrEmpty(ID)) {
            return;
        } else {
            await Navigation.PushAsync(new Home());
        }
    }
}

从技术上讲,如果您已经决定不使用OnAppearing(),您可以在推送LoginPage之前执行Check(),尽管没有看到更多的代码,但这似乎会破坏LoginPage的目的。