In Windows Phone 8 habe ich die Methode public async Task<bool> authentication()
. Der Rückgabetyp der Funktion ist bool
, aber wenn ich versuchte, den zurückgegebenen Wert in einer if
-Bedingung zu verwenden, heißt es, dass Task<bool>
nicht in bool
konvertiert werden kann.
public async Task<bool> authentication()
{
var pairs = new List<KeyValuePair<string, string>>
{
new KeyValuePair<string, string> ("user", _username),
new KeyValuePair<string, string> ("password", _password)
};
var serverData = serverConnection.connect("login.php", pairs);
RootObject json = JsonConvert.DeserializeObject<RootObject>(await serverData);
if (json.logined != "false")
{
_firsname = json.data.firsname;
_lastname = json.data.lastname;
_id = json.data.id;
_phone = json.data.phone;
_ProfilePic = json.data.profilePic;
_thumbnail = json.data.thumbnail;
_email = json.data.email;
return true;
}
else
return false;
}
Der Rückgabetyp Ihrer Funktion ist Task<bool>
, nicht bool
selbst. Um das Ergebnis zu erhalten, sollten Sie das await
-Schlüsselwort verwenden:
bool result = await authentication();
Sie können "Was in einer Async-Methode passiert" dieses MSDN-Artikels lesen, um mehr über die async / await
-Sprachfunktion zu erfahren.
Sie müssen die Aufgabe await
:
bool result = await authentication();
Oder Sie können Ihre bevorzugte alternative Methode verwenden, um auf ein Task
zu warten.