c# - undplash - ¿Es posible usar Task<bool> en condiciones if?
unsplash faq (2)
En Windows Phone 8 tengo el método public async Task<bool> authentication()
. El tipo de retorno de la función es bool
pero cuando traté de usar su valor devuelto en una condición if
, el error dice que no puede 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;
}
El tipo de devolución de su función es Task<bool>
, no bool
sí. Para obtener el resultado, debe usar la palabra clave await
:
bool result = await authentication();
Puede leer la sección "Qué sucede en un método async / await
" de este artículo de MSDN para obtener más información sobre la función de lenguaje async / await
.
Tienes que await
la tarea:
bool result = await authentication();
O bien, puede usar su método alternativo favorito de esperar en una Task
.