C#中判断可空整数非空且不等于特定值的简写方法
C#可空整数非空且不等于特定值的简写方式
当然有几种更简洁的写法可以替代你原有的判断逻辑,下面是常见的几种实现:
模式匹配(C# 7.0+)
这种方式可以一次性完成空值检查和变量赋值,代码更紧凑:int? action = null; var actionText = action is int val && val != 0 ? val.ToString() : "-";扩展方法封装
如果这类判断在代码中频繁出现,可以封装一个扩展方法来复用逻辑:public static class NullableIntExtensions { public static bool HasValueNotEqualTo(this int? nullableInt, int targetValue) { return nullableInt.HasValue && nullableInt.Value != targetValue; } }调用时就会非常简洁:
var actionText = action.HasValueNotEqualTo(0) ? action.ToString() : "-";空合并运算符结合判断
利用??给可空类型一个不会和目标值冲突的默认值,再做判断(注意默认值不能等于你要排除的特定值):var actionText = (action ?? -1) != 0 ? action.ToString() : "-";
内容的提问来源于stack exchange,提问作者Nam Pham
相关产品推荐
相关产品推荐

