Невозможно неявно преобразовать тип 'bool' в 'system.threading.tasks.task bool'

122
14

У меня есть эта ошибка: "Невозможно неявно преобразовать тип" bool "в" system.threading.tasks.task bool "в моем коде реализации службы. Не могли бы вы исправить мой код, пожалуйста.


public Task<bool> login(string usn, string pwd)
{
DataClasses1DataContext auth = new DataClasses1DataContext();
var message = from p in auth.Users
where p.usrName == usn && p.usrPass == pwd
select p;
if (message.Count() > 0)
{
return true;
}
else
{
return false;
}
}

спросил(а) 2020-04-04T00:18:15+03:00 6 месяцев, 2 недели назад
1
Решение
134

Вам нужно указать, хотите ли вы, чтобы эта операция выполнялась асинхронно или нет.


В качестве примера для Async Operation:


public async Task<bool> login(string usn, string pwd)
{
DataClasses1DataContext auth = new DataClasses1DataContext();
var message = await (from p in auth.Users
where p.usrName == usn && p.usrPass == pwd
select p);
if (message.Count() > 0)
{
return true;
}
else
{
return false;
}
}

Если вам не нужна операция Async, попробуйте следующее:


public bool login(string usn, string pwd)
{
DataClasses1DataContext auth = new DataClasses1DataContext();
var message = from p in auth.Users
where p.usrName == usn && p.usrPass == pwd
select p;
if (message.Count() > 0)
{
return true;
}
else
{
return false;
}
}

Примечание:
async и await совместимы с .net 4.5 и С# 5.0 и более

ответил(а) 2020-04-04T00:29:34.648139+03:00 6 месяцев, 2 недели назад
41

Если вы добавите Task.FromResult, вы можете подделать его для компиляции и работы, даже если ваш метод не является async. Я должен был сделать это при подключении Identity, который все async, к предыдущему концу.


Пример:

public override Task<bool> IsEmailConfirmedAsync(string userId)
{
var profile = UserProfileType.FetchUserProfile(AtlasBusinessObject.ClientId.ToString(), decimal.Parse(userId));
Task.FromResult(profile.EmailAddress.NullIfEmpty() != null);
}

ответил(а) 2020-04-04T00:18:15+03:00 6 месяцев, 2 недели назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема