newViewModel.Notification = "information" ? "information" : "success";
有人可以帮我纠正上述情况吗?
Cannot implicitly convert type 'string' to 'bool'
如果通知不等于“信息”,则应该等于“成功”。
答案 0 :(得分:7)
正确的用法是:
newViewModel.Notification = newViewModel.Notification == "information" ? "information" : "success";
这遵循语法为defined here:
condition ? first_expression : second_expression;
其中:“条件必须评估为真或假。” (即布尔值)
但是,如果您只想将其设置在一个条件下,则使用三元组是没有意义的,请考虑使用单个if语句:
if(newViewModel.Notification != "information")
newViewModel.Notification = "success";
在我看来,这也很容易阅读和理解。
答案 1 :(得分:4)
第一个操作数必须是布尔值:
newViewModel.Notification = newViewModel.Notification == "information" ? "information" : "success";
然而(正如Matti Virkkunen建议的那样),您可以使用简单的if
语句(特别是如果您没有else
分支)
if(newViewModel.Notification == "information")
newViewModel.Notification = "success";
答案 2 :(得分:2)
你的三元组正在接受一个字符串,它需要采取一个bool,因为消息说,它需要像这样:
boolean ? object : object
你的意思是做其中一个吗?
newViewModel.Notification =
(something == "information" ? "information" : "success");
或
newViewModel.Notification =
(newViewModel.Notification == "information" ? "information" : "success");
请注意,使用三元组并不是一个特别好的地方,直线if
可能会更好。
if (newViewModel.Notification != "information")
newViewModel.Notification = "success"
答案 3 :(得分:2)
使用string.Equals
可以说更多语义/自我记录:
newViewModel.Notification =
newViewModel.Notification.Equals("information") ? "information" : "success";