私は非同期関数を呼び出そうとしていますが、試してみると、その下に赤い線があります。私は、ページが開かれたときに関数が呼び出されるようにしておきたいと思います。私は非同期関数xamarinを呼び出す方法
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の新機能
次に、ページが開いているときのイベントハンドラに配置します。コンストラクタでそれをしないでください。あなたがしなければならない場合は、 'Task.Run'を使用することができますが、私はそれに対して助言します。 – Nkosi
コンストラクターでasyncを呼び出すことはできません。オブジェクトが構築されると、コンストラクターは実行を終了する必要があるからです。イベントハンドラまたはテンプレートメソッドで行います。 –
実際の問題ではありませんが、 'async void'の代わりに' async Task'を使うのが最善です。追加情報[MSDNのStackOverflowの通常のStephen Cleary](https://msdn.microsoft.com/en-us/magazine/jj991977.aspx) – clarkitect