是否可以在三元运算符(c#if的简写)中编写此if语句?如果是的话会是什么?
if (condition)
{
return true;
}
else
{
int a = 2;
}
提前大家。非常感谢你。
对不起家伙,如果我困惑你。我试图在方法的if else块中使用三元运算符。
public static bool CompareDictionary(this Dictionary<Position, char>
dictionary1,
Dictionary<Position, char> dictionary2, out List<string> wordList)
{
string str = "";
wordList = new List<string>();
foreach (var dic1KeyVal in dictionary1)
{
Position d1key = dic1KeyVal.Key;
char d1Pos = dic1KeyVal.Value;
bool isFound = false;
foreach (var dic2KeyVal in dictionary2)
{
Position d2key = dic2KeyVal.Key;
char d2Pos = dic2KeyVal.Value;
if (d1Pos.Equals(d2Pos) && d1key == d2key)
{
isFound = true;
str = str + d1Pos.ToString();
}
}
if (isFound == false)
{
return false;
}
else
{
wordList.Add(str);
str = "";
}
}
return true;
}
答案 0 :(得分:7)
简答
没有
长答案
首先,这段代码甚至不需要其他内容:
if (condition)
{
return true;
}
else
{
int a = 2;
}
可以写成:
if (condition)
{
return true;
}
int a = 2;
现在对于三元运算符:三元运算符中的两个条件必须返回相同的东西。您不能在一个条件中返回bool
,然后在另一个条件中分配给变量。例如,如果您正在检查问题的答案,那就是这样的:
return answer == 2 ? true : false;
答案是否正确,我们返回bool
。或者它可能是这样的:
return answer == 2 ? 1: -1;
但不是这样的:
return answer == 2 ? true : "wrong"; // will not compile
答案 1 :(得分:0)
没有。三元运算符只根据条件返回两个潜在值中的一个。
你可以用三元运算符做什么,例如int a = condition ? 0 : 2
,根据a
的值,将变量condition
的值分配为0或2。
给出一个更完整的例子,你打算做什么,这里有人可能会提出一个更好的语法。