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

Unity中使用C# Nullable时x==null返回false是否为Bug?

Unity中可空值类型== null判断显示异常问题

问题现象

在Unity里使用C#可空值类型时观测到异常表现:编写代码int? x = null后,x == null的判断结果显示为false,不符合预期的true,但x.HasValue的返回结果完全正常。

复现环境

以下3种环境测试均可稳定复现该现象:

  • Unity 2020.3.30f1 + 构建目标WebGL + API兼容级别.Net Standard 2.0
  • Unity 2020.3.30f1 + 构建目标Windows + API兼容级别.Net Standard 2.0
  • Unity 2019.4.19f1 + 构建目标Windows + API兼容级别.Net Standard 2.0

问题结论

该现象不是Unity引擎的Bug,是Visual Studio调试器导致的显示异常:
在Unity中实际运行代码int? x = null; print(x == null);时,控制台会正确输出true,仅在Visual Studio调试状态下的监视窗口中查看x == null表达式结果时,才会错误显示为false。

日常开发判断可空值类型是否为空时,优先使用HasValue属性,可以完全规避这类调试器显示异常带来的误判。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 22:42:23