You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C#内联空检查处理失效,请求排查空引用异常原因

问题排查与解决方案

问题根源

你的代码在ViewModel.OccupationRefer为null时,会直接调用ToString()方法,而null对象无法调用成员方法,这就是空引用异常的原因。原代码的逻辑顺序错误:先执行了ToString(),再做空字符串判断,完全跳过了对象本身的null检查。

修正方案

方案1:基础null判断

直接先检查对象是否为null,再决定取值:

var x = ViewModel.OccupationRefer == null ? string.Empty : ViewModel.OccupationRefer.ToString();

方案2:C# 6+ 简化写法(推荐)

利用空条件运算符?.和空合并运算符??实现更简洁的内联逻辑:

var x = ViewModel.OccupationRefer?.ToString() ?? string.Empty;
  • ?.:当OccupationRefer为null时,整个表达式ViewModel.OccupationRefer?.ToString()返回null
  • ??:将前面的null结果替换为空字符串,完美匹配你的需求

额外考虑:ViewModel本身可能为null的情况

如果ViewModel也存在null的可能,需要进一步扩展空检查:

var x = ViewModel?.OccupationRefer?.ToString() ?? string.Empty;

内容的提问来源于stack exchange,提问作者Steve Newton

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 23:47:02