Не могу получить значение из реестра C#

Создал функция которая проверяет есть ли параметр и если он есть то значение этого параметра записать в переменную. Но это не работает. В отладчике пишет что Microsot.Win32.Registry.GetValue возвращено 54.12.55. То есть значение которые оно вернуло верное, но когда дело доходит до записи в переменную она возвращает null

if (Registry.GetValue(@"HKEY_CURRENT_USER\onliner","address", null) != null) 
{
    string test = Registry.CurrentUser.OpenSubKey(@"HKEY_CURRENT_USER\onliner").GetValue("address").ToString();
}
else
{
    //nothing
}

Что я неправильно сделал?


Ответы (1 шт):

Автор решения: hot_penguin

Ошибка в пути. Если вы уже указали ключ Registry.CurrentUser, то в пути метода .OpenSubKey() не стоит его повторно прописывать.

Еще так как вы уже читаете значение при проверке, можно сразу его записать в переменную.

Вот рабочий вариант:

string test = Registry.GetValue(@"HKEY_CURRENT_USER\onliner", "address", null)?.ToString();
if (test != null) 
{
    Console.WriteLine(test);
}
→ Ссылка