为什么我们使用'?' c#中的字符

时间:2017-08-04 09:09:33

标签: c#

我正在查看某人的代码。我找到了:

XOffset = !MirroredMovement ? trans.x * MoveRate : -trans.x * MoveRate;

他用'?'性格,为什么?这是什么意思 ?我不明白。

2 个答案:

答案 0 :(得分:2)

?不是运算符,?:的组合是运算符,称为“三元运算符”。

三元运算符是一个带三个参数的运算符。第一个参数是比较参数,第二个参数是真实比较的结果,第三个参数是错误比较的结果。如果有帮助,您可以将运算符视为编写if-else语句的缩短方式。

答案 1 :(得分:2)

那是三元运营商。

condition ? value1 : value2

简称:

if (condition)
{
    return value1;
}
else
{
    return value2;
}

在这个例子中你可以这样写:

XOffset = !MirroredMovement ? trans.x * MoveRate : -trans.x * MoveRate;
像那样:

if (!MirroredMovement)
{
    XOffset = trans.x * MoveRate;
}
else
{
    XOffset = -trans.x * MoveRate;
}