【问题标题】:C# using ternary operator. When?C# 使用三元运算符。什么时候?
【发布时间】:2013-01-06 19:10:01
【问题描述】:

使用三元运算符时遇到问题。

...
char symbol = str_base[i];
int count = 1;
...

(count == 1) ? str_rle += symbol : str_rle += count.ToString() + symbol;

得到这样的错误: 只有赋值、调用、递增、递减和新对象表达式可以用作语句

为什么?三元运算符真的只适用于:调用函数、++ & -- 吗?

谢谢!

【问题讨论】:

    标签: call increment ternary-operator assignment-operator decrement


    【解决方案1】:

    行的左侧是比较而不是分配(不确定您要在这里做什么)。我希望您可以将三元运算符用于这种条件执行,但不幸的是您不能。在这种情况下,您可以在表达式的另一端使用三元运算符;

    str_rle += (count == 1) ? symbol : count.ToString() + symbol;
    

    【讨论】:

    • 三元运算符不只是 if-else 块的替换吗?因为 if-else 可以处理任何事情。
    • 否,三元运算符与 +、-、* 等属于同一类运算符,它将比较作为运算符,并根据比较值返回两个结果之一。所以你必须将结果分配给不使用它有条件地运行语句的东西。
    猜你喜欢
    • 2023-03-05
    • 2020-09-12
    • 2022-01-11
    • 2017-06-28
    • 1970-01-01
    • 2021-03-24
    • 2011-03-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多