2009-03-18 5 views
1

Один из предыдущих разработчиков, где я работаю постоянно, последовательно используются:.net AppSettings исторические мелочи

ConfigurationSettings.AppSettings["Foo"].ToString() 

Это веточки мне немного, так как элементы коллекции AppSettings уже строки, но меня заинтересовало: путь обратно в древние дни .net 1.0 и 1.1, собирали ли хранилища его элементы как тип Object, требующие вызова ToString()?

ответ

5

No, AppSettings всегда был NameValueCollection с ключом string и значением string.

Источник: MSDN

0

нет в AppSettings в 1.1 NameValueCollection строк, я просматривал решение в VS2003 и я также найти ToString() при получении AppSettings; возможно, это привычка разработчика

4

Как уже упоминалось, ConfigurationSettings.AppSettings является NameValueCollection, который возвращает его в виде строк.

Лично я ненавижу видеть этот тип кода ... люди прикрепляют вызов ToString() к любому свойству независимо от того, вернет ли он строку в первую очередь. К сожалению, я слишком часто вижу это. Я предполагаю, что это заставляет людей чувствовать себя комфортно ... так или иначе, как будто они следуют рекомендациям по написанию красивого кода. : P

Что они не понимают, так это то, что вызов ToString() на объект Null вызовет исключение. Например, в вашем примере, если в разделе AppSettings Configuration не было ключа «Foo», код должен быть выброшен NullReferenceException.

+0

+1 за то, что указали это, может быть, он даже настроил код, чтобы поймать это исключение, чтобы сообщить пользователю, что ключ не существует –

Смежные вопросы