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
相关推荐
123的故事4 小时前
工具分享(2)-NSmartProxy内网穿透工具。
c#·.net·nsmartproxy
SunnyDays10116 小时前
使用 C# 添加、修改和删除 Excel VBA 宏 (无需 Microsoft Office Interop)
c#·excel··vba
影寂ldy6 小时前
C# 多接口、同名冲突、显式实现、接口继承 完整笔记
java·笔记·c#
诸葛大钢铁6 小时前
如何降低Word文件的体积?压缩Word文件的三种方法
开发语言·c#
专注VB编程开发20年6 小时前
阿里通义灵码插件安装失败
开发语言·ide·c#·visual studio
影寂ldy7 小时前
C# 泛型方法
java·前端·c#
caimouse7 小时前
Godot 4.7 内嵌 C# 模块切换到 .NET 9.0 编译指南
c#·.net·godot
z落落15 小时前
C# 泛型方法(原理、类型推断、多泛型参数)+泛型效率(普通类型 VS Object装箱 VS 泛型)
开发语言·c#
rockey62717 小时前
基于AScript的SQL脚本语言发布啦!
sql·c#·.net·script·expression·动态脚本