无法将类型“void”隐式转换为“bool”Xamarin 警报
Posted
技术标签:
【中文标题】无法将类型“void”隐式转换为“bool”Xamarin 警报【英文标题】:Cannot implicitly convert type 'void' to 'bool' Xamarin alert 【发布时间】:2017-10-05 17:14:33 【问题描述】:所以,我一直在尝试使用带有回调的警报。我希望用户在单击“确定”按钮时返回主页。
根据 来自 *** 的 Xamarin 文档:/documentation/xamarin.forms/4883/display-alert#t=20171005164124370635 我做得很好,但我无法让它工作。已经尝试过不同的声明方法,但似乎没有任何效果。
async void ConfirmationAlert(String resp)
if (await DisplayAlert(resp, "", "OK"))
MasterLogin.Perfil mPerfil = new MasterLogin.Perfil();
mPerfil.mainPage = mainPage;
mainPage.Master = mPerfil;
【问题讨论】:
请显示出现错误的代码。是什么让您认为我们可以猜出您粘贴的部分 URL 的域? DisplayAlert() 返回什么,只是简单的任务? 很抱歉,*** 不允许我发布完整链接,所以我提到它是 *** 的文档,它是 ***.com/doc... 由于标题@第2行提到的错误,它现在甚至无法编译。 【参考方案1】:您调用返回 void 的重载,请参阅 Display Alert Void 和 Display Alert Bool 您需要提供参数 string accept
以获得正确的重载。
【讨论】:
有string参数,唯一没有包含的就是cancel参数。我是否也需要包含那个才能让它工作? 只需去掉 IF 语句。如果他们只能选择 OK,那么测试响应毫无意义。 是的,返回Task<bool>
的方法需要所有四个参数才能为用户提供选择,bool
代表该选择。只提供三个参数不会给用户选择,因此不会返回值。
看起来它确实是必须包含的第四个参数才能使其工作。现在它可以正常工作了。【参考方案2】:
带有三个参数的DisplayAlert
不会返回bool
,因此您不能在if
语句中使用它。
【讨论】:
以上是关于无法将类型“void”隐式转换为“bool”Xamarin 警报的主要内容,如果未能解决你的问题,请参考以下文章
解决Html.CheckBoxFor中”无法将类型 bool 隐式转换为 bool。存在一个显式转换..."的方法
C++,bool 转换是不是总是退回到 void* 的隐式转换?
向启用文本框 (C#) 的 Web 部件添加按钮,出现错误:无法将类型“bool”隐式转换为“字符串”