Создал функция которая проверяет есть ли параметр и если он есть то значение этого параметра записать в переменную. Но это не работает. В отладчике пишет что 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
}
Что я неправильно сделал?
Ошибка в пути. Если вы уже указали ключ Registry.CurrentUser, то в пути метода .OpenSubKey() не стоит его повторно прописывать.
Еще так как вы уже читаете значение при проверке, можно сразу его записать в переменную.
Вот рабочий вариант:
string test = Registry.GetValue(@"HKEY_CURRENT_USER\onliner", "address", null)?.ToString();
if (test != null)
{
Console.WriteLine(test);
}
Сборка персонального компьютера от Artline: умный выбор для современных пользователей