不能隐式转换类型'& # 39; system.threading.tasks.bool # 39;任务
本文关键字:system threading tasks 任务 bool 不能 转换 类型 | 更新日期: 2023-09-27 18:07:07
我有这个错误:"不能隐式转换类型'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;
}
}
您需要明确是否希望此操作异步进行。
以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;
}
}
如果你不需要它是一个异步操作,试试这个:
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和c# 5.0及以上版本
如果您添加Task.FromResult
,即使您的方法不是async
,您也可以将其编译并工作。我必须这样做,当连接身份,这是所有的async
,遗留后端。
的例子:
public override Task<bool> IsEmailConfirmedAsync(string userId)
{
var profile = UserProfileType.FetchUserProfile(AtlasBusinessObject.ClientId.ToString(), decimal.Parse(userId));
Task.FromResult(profile.EmailAddress.NullIfEmpty() != null);
}