为了账号安全,请及时绑定邮箱和手机立即绑定

c#遇到的一个小问题语法方面的

c#遇到的一个小问题语法方面的

肥皂起泡泡 2018-08-02 05:06:20
bool b = true;             Console.WriteLine(b ? "1111" : "2222222" + "3");             Console.ReadKey();上面的代码执行结果我想是 11113而实际的结果确是1111。有人知道这是为什么吗,按原理应该是11113
查看完整描述

2 回答

?
Helenr

TA贡献1780条经验 获得超3个赞

条件运算符(?:)是向右顺序结合,即从右到左执行计算,而在向←运算将要执行时编译器得知+优先级高于条件运算符,于是乎先执行了"2222222" + "3",而不只是+的优先级的高的问题 因此此处实际是处理 b ? "1111" : "22222223";的运算 

查看完整回答
反对 回复 2018-08-06
?
MM们

TA贡献1886条经验 获得超2个赞

Console.WriteLine((b ? "1111" : "2222222") + "3");
运算符优先级问题,加上括号改变一下默认优先级吧


查看完整回答
反对 回复 2018-08-06
  • 2 回答
  • 0 关注
  • 553 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信