我如何调用异步函数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
您应该在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
的目的。