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

C#代码为何抛出System.NullReferenceException空引用异常?

System.NullReferenceException异常原因分析

你的代码意图是找到字符串"Podatki so v EUR s centi"后,在下一次循环输出对应数据并重置状态,但执行时触发了空引用异常,具体原因如下:

异常本质

System.NullReferenceException的核心是你尝试访问一个未实例化的对象(值为null的对象)的成员。虽然调试器显示异常发生在z = 3这一行,但实际异常触发点是前面的Console.WriteLine语句,属于调试器行号标记的偏差。

具体触发场景

可能的触发情况有两种:

  • 集合izkazi1中包含null元素:当循环到null元素且z == 1时,访问i.VREDNOSTI1或i.VREDNOSTI2会直接抛出异常——因为i本身是null,没有任何属性可以访问。
  • i对象有效,但VREDNOSTI1/VREDNOSTI2为null:虽然Console.WriteLine(null)本身不会抛出异常,但如果后续对这些属性有调用方法等操作,也可能触发异常;不过结合你的代码,这种情况概率更低,更可能是集合中存在null元素。

额外的代码逻辑问题

你的两个if语句是独立执行的:当z == 1的分支执行完毕后,仍会执行第二个if的判断。如果当前循环的i.VREDNOSTI2恰好等于目标字符串,会把z重新设为1,这可能不符合你"输出后重置状态"的预期,建议调整为else if或者改变判断顺序。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 07:12:21