Stealch
@Stealch
Админ, мотобродяга.

Как избавиться от NullReferenceException?

Приветствую! Такая вот проблемка. Вроде сделал все правильно, однако возникает NullReferenceException. А мне НАДО чтобы значение null было допустимо. Я даже подменяю его на значение default (по факту - нет, все упирается в исключение.) Nulltabe не применим, C# 7.3 где МОЖНО использовать значение null, однако нельзя. Суть в том, что если данного ключа нет - должен просто исполняться другой код. Но ничего из этого не происходит. ЧЯДНТ?
string _value = installPath.OpenSubKey(@"SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\Death Stranding Directors Cut_is1").GetValue("InstallLocation")?.ToString() ?? "default";

            if (_value != null)
            {
                Console.WriteLine(_value); // Будет заменено на действие по умолчанию.
            }
            else
            {
                Console.WriteLine("No such key"); // Будет заменено на действие при отсутствии ключа реестра.
            }
        }
  • Вопрос задан
  • 102 просмотра
Решения вопроса 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
- string _value = installPath.OpenSubKey(@"SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\Death Stranding Directors Cut_is1").GetValue("InstallLocation")?.ToString() ?? "default";
+ string _value = installPath
+  .OpenSubKey(@"SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\Death Stranding Directors Cut_is1")
+  ?.GetValue("InstallLocation")
+  ?.ToString()
+  ?? "default";

И ещё, вы уверены, что указали путь, вложенный в installPath? Выглядит как полный путь от корня реестра.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы