关于异常System.NullReferenceException
什么是NullReferenceException
试图访问或取消引用空对象引用时引发的异常。
继承链
-
ObjectExceptionSystemExceptionNullReferenceException
说明
尝试访问值为空的类型上的成员时,将引发NullReferenceException异常。NullReferenceException异常通常反映开发人员错误,可能引发的情况如下:
- 忘记了实例化引用类型
- 在初始化数组之前,忘记了维度。
- 从方法获取null返回值,然后对返回的类型调用方法。
- 使用的是表达式(例如,你要将方法或属性的列表链接在一起)来检索值,但尽管你要检查值是否为
null
,运行时仍会引发 NullReferenceException 异常。 出现这种情况的原因是表达式中的中间值之一返回null
。 因此,永远不会计算null
的测试。 - 正在枚举包含引用类型的数组元素,尝试处理其中一个元素会引发 NullReferenceException 异常。
null
传递的方法引发 NullReferenceException 异常。 某些方法会验证传递给它们的参数。 如果null
,则该方法将引发 System.ArgumentNullException 异常。 否则,会引发 NullReferenceException 异常。
以下 Microsoft 中间语言(MSIL)指令引发 NullReferenceException: callvirt
、cpblk
、cpobj
、initblk
、ldelem.<type>
、ldelema
、ldfld
、ldflda
、ldind.<type>
、ldlen
、stelem.<type>
、stfld
、stind.<type>
、throw
和 unbox
。
HRESULT
NullReferenceException 使用值为0x80004003 的 HRESULT COR_E_NULLREFERENCE。
为虫子生,为虫子死,为虫子奋斗一辈子
分类:
调试
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义