You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何C#中Console.WriteLine拼接字符串后判等输出False而非预期值

现象原因

这一问题的核心是C#的运算符优先级规则:+(字符串拼接运算符)的优先级高于==(相等比较运算符),代码执行时会优先运行优先级更高的运算符,和你预想的执行顺序不符。


第一段代码的完整执行逻辑

你写的表达式"Output" + v1 == v2不会先执行v1 == v2的判断,而是按照优先级顺序执行如下步骤:

  1. 优先执行+运算:把字符串"Output"和v1的值"Hallo"拼接,得到新字符串"OutputHallo"
  2. 再执行==比较运算:把第一步得到的"OutputHallo"和v2的值"Hallo"做相等判断,两个字符串内容不一致,返回布尔值False
  3. 最终把False传入Console.WriteLine输出,就得到了你看到的运行结果。

符合预期的调整方案

如果要先做v1和v2的相等判断,需要用括号手动调整运算优先级,修改为:

Console.WriteLine("Output" + (v1 == v2));

修改后代码会先执行括号内的v1 == v2得到true,再和"Output"拼接,最终输出OutputTrue,和第二段代码的执行效果一致。第二段代码没有优先级冲突,只有+拼接运算,所以直接按顺序执行拼接,输出结果符合你的预期。

内容的提问来源于stack exchange,提问作者David Mason

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 15:39:03