C#空引用异常排查:CustomerOrderNumber调用Contains报错
问题分析与解决
异常原因:就是
CustomerOrderNumber字段存在Null值,不是找不到这个对象。错误信息里的CELIntranet.Models.spM80PreDispatch_Result.CustomerOrderNumber.get returned null已经明确说明,读取这个属性时返回了null,而你直接在null值上调用Contains()方法,自然会触发空引用异常。修复方案:
- 方案1:先判断属性不为null,再调用方法
// 替换原判断逻辑 || (c.CustomerOrderNumber != null && c.CustomerOrderNumber.Contains(query)) - 方案2:用空合并运算符把null转为空字符串
|| (c.CustomerOrderNumber ?? "").Contains(query) - 方案3:用空条件运算符(C# 6及以上版本支持)
|| c.CustomerOrderNumber?.Contains(query) == true
- 方案1:先判断属性不为null,再调用方法
内容的提问来源于stack exchange,提问作者CrazyIvan
相关产品推荐
相关产品推荐

