C#条件判断代码简化咨询:是否需重复变量及下划线语法解析
关于C#条件判断简化与弃元语法的说明
1. 范围判断的简化写法
你完全可以不用重复书写iValue,有几种简洁的替代方式:
- C# 9.0及以上版本:模式匹配语法
用is关键字结合范围判断,搭配逻辑与and,写法更紧凑:if (iValue is >= 4 and <= 10) { /* ... other code ... */ } - 自定义扩展方法(全版本适用)
如果需要在多处复用这个范围判断逻辑,可以封装成扩展方法,让代码更具可读性:
调用时直接写:public static class IntExtensions { public static bool IsBetween(this int value, int min, int max) { return value >= min && value <= max; } }if (iValue.IsBetween(4, 10)) { /* ... other code ... */ }
2. _ = ...中下划线的含义
这个下划线是C#里的弃元(Discard),作用是明确表示我们不需要某个表达式的返回值,只是为了执行表达式本身。
常见使用场景:
- 调用有返回值但不需要结果的方法:比如某些方法返回操作状态,但你只关心操作执行完成,就可以写
_ = SomeReturningMethod(); - 解构操作时忽略部分返回值:比如解构元组时,只需要其中一部分值,
var (_, age) = GetUserInfo();,这里_表示忽略第一个返回的用户名字段,只取年龄。 - 编译器会对弃元做优化,不会为它分配内存空间,同时还能避免“未使用变量”的编译器警告,比定义一个不用的变量更清晰。
内容的提问来源于stack exchange,提问作者John D
相关产品推荐
相关产品推荐

