Здравствуйте, MozgC, Вы писали:
MC>Я бы наверное написал как-то так: MC>
string value = Registry.GetValue(.., .., null) as string;
MC>if(value == null)
MC> throw new SomeException("Something is wrong with the registry settings bla bla bla.");
если из-за всякой ерунды городить столько кода то проект станет нечитабельным ещё на начальном этапе.
Здравствуйте, vladpol, Вы писали:
V>Здравствуйте, celtdev, Вы писали:
C>>При получении значения из реестра через Registry.GetValue C>>что лучше преобразование к строке: string str = (string)Registry.GetValue(......); C>>или же вызов ToString: string str = Registry.GetValue(......).ToString();
V>.ToString(), как по мне, кошернее
При чём тут, "кошернее"? Это же не две разные записи одного и того же, это два совершенно разных действия.
Здравствуйте, celtdev, Вы писали:
C>При получении значения из реестра через Registry.GetValue C>что лучше преобразование к строке: string str = (string)Registry.GetValue(......); C>или же вызов ToString: string str = Registry.GetValue(......).ToString();
Исходите из того, что Registry.GetValue может вернуть не строку и может вернуть null.
Если GetValue вернет не строку (а например числовое значение, обернутое в object), то (string)Registry.GetValue(...) приведет к InvalidCastException. Хотя, надо признать, такое маловероятно.
Если указанного ключа не существует GetValue() вернет null и вызов Registry.GetValue(......).ToString() приведет к NullReferenceException.
Я бы наверное написал как-то так:
string value = Registry.GetValue(.., .., null) as string;
if(value == null)
throw new SomeException("Something is wrong with the registry settings bla bla bla.");
При получении значения из реестра через Registry.GetValue
что лучше преобразование к строке: string str = (string)Registry.GetValue(......);
или же вызов ToString: string str = Registry.GetValue(......).ToString();
Здравствуйте, celtdev, Вы писали:
C>При получении значения из реестра через Registry.GetValue C>что лучше преобразование к строке: string str = (string)Registry.GetValue(......); C>или же вызов ToString: string str = Registry.GetValue(......).ToString();
Здравствуйте, celtdev, Вы писали:
C>При получении значения из реестра через Registry.GetValue C>что лучше преобразование к строке: string str = (string)Registry.GetValue(......); C>или же вызов ToString: string str = Registry.GetValue(......).ToString();
Если там в реестре ожидается строка, то (string), чтобы заодно проверить типизацию.
Если там не строка или неизвестно что — то .ToString()
Здравствуйте, vmpire, Вы писали:
V>Здравствуйте, vladpol, Вы писали:
V>>Здравствуйте, celtdev, Вы писали:
C>>>При получении значения из реестра через Registry.GetValue C>>>что лучше преобразование к строке: string str = (string)Registry.GetValue(......); C>>>или же вызов ToString: string str = Registry.GetValue(......).ToString();
V>>.ToString(), как по мне, кошернее V>При чём тут, "кошернее"? Это же не две разные записи одного и того же, это два совершенно разных действия.
Здравствуйте, Аноним, Вы писали:
А>если из-за всякой ерунды городить столько кода то проект станет нечитабельным ещё на начальном этапе.
Ага, если из-за всякой ерунды не городить столько кода, то проект скоро станет неюзабельным. Занимались удалённой отладкой по телефону, путём телепатии?
Здравствуйте, Аноним, Вы писали:
А>Здравствуйте, MozgC, Вы писали:
MC>>Я бы наверное написал как-то так: MC>>
string value = Registry.GetValue(.., .., null) as string;
MC>>if(value == null)
MC>> throw new SomeException("Something is wrong with the registry settings bla bla bla.");
А>если из-за всякой ерунды городить столько кода то проект станет нечитабельным ещё на начальном этапе.
Это совсем не ерунда. Эти проверки необходимы!
Они в будущем сэкономят Ваше же время, при дальнейшей работе над проектом.