C# 运算符优先级易踩坑

一、先上结论

算术 > 比较 > 逻辑与(&&) > 逻辑或(||) > 赋值

二、常见的坑

  • || 和 &&
cs 复制代码
if (a || b && c)

// 实际的执行顺序

if (a || (b && c))
  • 字符串拼接 + 数字计算
cs 复制代码
Console.WriteLine("结果:" + 1 + 2);  // 结果:12
  • 三元运算符可读性较差
cs 复制代码
var r = a > b ? a > c ? a : c : b;
  • 非短路运算
cs 复制代码
if (obj != null & obj.Value > 0) // 抛异常
  • 陷阱 短路运算
cs 复制代码
int x = 1;
bool r = x > 0 || x++ > 1;

// r = true

// x = 1
相关推荐
qq_4312807018 小时前
上位与基恩士PLC通讯工作记录
c#
weixin_4280053021 小时前
C#调用 AI学习从0开始-第1阶段(基础与工具)-第2天Prompt工程基础
人工智能·学习·c#·prompt
咩图1 天前
WPF-VisualStudio-C#-Fluent.Ribbon8.0.0学习
c#·wpf·visual studio
加号31 天前
【C#】WPF基于Halcon 的HWindowControlWPF 控件实现图像缩放、移动
开发语言·c#·wpf
雪豹阿伟1 天前
2.C# —— 结构体、类型转换与运算符
c#·上位机
njsgcs1 天前
c# solidworks GetPartBox无法获得正确实体边界框原因
开发语言·c#·solidworks
rockey6271 天前
AScript之匿名类型与动态类型
c#·.net·script·eval·expression·动态脚本
99乘法口诀万物皆可变1 天前
BMS HIL 自动化测试框架方案(基于 CANoe + C# + Excel)
开发语言·c#·excel
祀爱1 天前
定时任务之BackgroundService的详细教程
后端·c#·asp.net
weixin_428005301 天前
C#调用 AI学习从0开始-第1阶段(基础与工具)-第3天FewShot少样本测试
人工智能·c#