newViewModel.Notification = "information" ? "information" : "success";
有人可以帮我纠正上述问题吗?
Cannot implicitly convert type 'string' to 'bool'
如果 Notification 不等于“信息”,它应该等于“成功”。
newViewModel.Notification = "information" ? "information" : "success";
有人可以帮我纠正上述问题吗?
Cannot implicitly convert type 'string' to 'bool'
如果 Notification 不等于“信息”,它应该等于“成功”。
正确的用法是:
newViewModel.Notification = newViewModel.Notification == "information" ? "information" : "success";
这遵循此处定义的语法:
condition ? first_expression : second_expression;
其中:“条件必须评估为真或假。” (即一个布尔值)
但是,如果您只想在一个条件下设置它,那么使用三元是没有意义的,请考虑使用单个 if 语句:
if(newViewModel.Notification != "information")
newViewModel.Notification = "success";
在我看来,这也很容易阅读和理解。
第一个操作数必须是布尔值:
newViewModel.Notification = newViewModel.Notification == "information" ? "information" : "success";
但是(正如 Matti Virkkunen 建议的那样),您可以使用简单的if
语句(特别是如果您没有else
分支)
if(newViewModel.Notification == "information")
newViewModel.Notification = "success";
你的三元是一个字符串,它需要一个布尔值,正如消息所说,它需要像这样:
boolean ? object : object
你的意思是做其中之一吗?
newViewModel.Notification =
(something == "information" ? "information" : "success");
或者
newViewModel.Notification =
(newViewModel.Notification == "information" ? "information" : "success");
请注意,这不是使用三元的特别好地方,顺子if
可能会更好。
if (newViewModel.Notification != "information")
newViewModel.Notification = "success"
使用string.Equals
可以说是更具语义/自我记录:
newViewModel.Notification =
newViewModel.Notification.Equals("information") ? "information" : "success";