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

bool b = true;
            Console.WriteLine(b ? "1111" : "2222222" + "3");
            Console.ReadKey();

上面的代码执行结果我想是 

11113
而实际的结果确是1111。
有人知道这是为什么吗,按原理应该是11113


肥皂起泡泡
浏览 530回答 2
2回答

Helenr

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

MM们

Console.WriteLine((b ? "1111" : "2222222") + "3");运算符优先级问题,加上括号改变一下默认优先级吧
打开App,查看更多内容
随时随地看视频慕课网APP