gpt4 book ai didi

c# - 找不到为什么我有空引用异常

转载 作者:行者123 更新时间:2023-11-30 12:16:08 24 4
gpt4 key购买 nike

下面是代码和有问题的行。

当我将鼠标悬停在 src.EnergyServiceLevel 上时,它显示它为空。如果我在上一行中检查 null 怎么可能呢?

我的猜测是可能有线程导致了问题,所以我添加了一个锁,但它没有帮助。

public static ServiceLevelsGroup SafeClone(this ServiceLevelsGroup src) {
ServiceLevelsGroup res = null;
lock (_locker) {
if (src != null) {
res = new ServiceLevelsGroup();
if (src.EnergyServiceLevel != null) {
res.EnergyServiceLevel = new ServiceLevelInfo { ServiceGrade = src.EnergyServiceLevel.ServiceGrade };

if (src.EnergyServiceLevel.Reason != null)
res.EnergyServiceLevel.Reason = src.EnergyServiceLevel.Reason;
}
}
}

return res;
}

异常发生在上面代码中的res.EnergyServiceLevel = ...行。

这是在 Debug模式下发生的异常的屏幕截图:

Screenshot of exception while debugging

最佳答案

您的代码显示了 lock(_locker) - 所以看起来您处于多线程环境中。你能检查没有其他东西是 NULLing 你的变量吗?即其他一切也正确调用 lock(_locker)

关于c# - 找不到为什么我有空引用异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5928260/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com