Dans Windows Phone 8, j'ai la méthode public async Task<bool> authentication()
. Le type de retour de la fonction est bool
mais lorsque j'ai essayé d'utiliser sa valeur renvoyée dans une erreur de condition if
, il ne peut pas convertir Task<bool>
en bool
.
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;
}
Le type de retour de votre fonction est Task<bool>
, pas bool
lui-même. Pour obtenir le résultat, vous devez utiliser le mot clé await
:
bool result = await authentication();
Vous pouvez lire la section "Ce qui se passe dans une méthode asynchrone" de cet article Article MSDN pour en savoir plus sur la fonctionnalité de langue async / await
.
Vous devez await
la tâche:
bool result = await authentication();
Ou bien, vous pouvez utiliser votre autre méthode d’attente préférée sur une Task
.