考虑到评估时间,下面两个是等价的吗?
if(condition1)
{
//code1
}
else
{
//code2
}
condition1 ? code1 : code2
或者它们只是句法上的不同?
发布于 2009-11-02 16:26:16
不同之处在于,后者可用于根据条件返回值。
例如,如果您有以下语句:
if (SomeCondition())
{
text = "Yes";
}
else
{
text = "No";
}
使用三元运算符,您将编写:
text = SomeCondition() ? "Yes" : "No";
请注意,第一个示例如何基于条件执行语句,而第二个示例如何根据条件返回值。
发布于 2009-11-02 16:16:11
好吧..。在前一种情况下,您可以使用任何数量或类型(表达式与语句)的代码来代替code1
和code2
。在后一种情况下,它们必须是有效表达式。
发布于 2009-11-02 16:15:27
是的&是的。
唯一的好处就是节省代码行。
https://stackoverflow.com/questions/1659992
复制相似问题