Не могу найти, почему у меня есть исключение нулевой ссылки
Ниже приведен код и проблемная строка.
Когда я навожу курсор мыши на 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 = ...
в приведенном выше коде.
Вот скриншот исключения, возникающего в режиме отладки: