条件运算符(?:)是向右顺序结合,即从右到左执行计算,而在向←运算将要执行时编译器得知+优先级高于条件运算符,于是乎先执行了"2222222" + "3",而不只是+的优先级的高的问题 因此此处实际是处理 b ? "1111" : "22222223";的运算
Console.WriteLine((b ? "1111" : "2222222") + "3");
运算符优先级问题,加上括号改变一下默认优先级吧
不要依赖于默认的运算符优先级,代码中明确的使用()确定自己的代码逻辑,会使得代码更易于阅读。
+ 的优先级大于 三目运算符 ? :
应加(b ? "1111" : "2222222") + "3" 来控制
运算符优先级的问题,比较赞成2楼说的,加上()代码的可读性要好点,也是一个好的习惯
确实 优先级?