2009-03-18 7 views
1

つ:帰りで:.NETのAppSettings歴史トリビア私は習慣的に働く前の開発者、一貫して使用する

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

のAppSettingsコレクションアイテムが既に文字列ですが、私は不思議になったので、それは私に少し小枝古くからの.net 1.0と1.1のコレクションでは、ToString()呼び出しを必要とするObjectオブジェクトとしてコレクションにアイテムが格納されましたか?

答えて

5

いいえ、AppSettingsは、常にNameValueCollectionで、stringキーとstringという値です。

出典:1.1でMSDN

0

なしのAppSettingsは、文字列のNameValueCollectionのですが、私はVS2003でソリューションを見直したとのAppSettingsを取得中に私も()ToStringメソッドを見つけます。おそらくそれは開発者の習慣であるかもしれません。

4

すでに言及したように、ConfigurationSettings.AppSettingsNameValueCollectionであり、そのアイテムを文字列として返します。

個人的には、私はこの種のコードを見たことがありません。最初の場所に文字列を返すかどうかにかかわらず、ToString()呼び出しをちょうどすべてのプロパティに接続しています。残念ながら、私はそれをあまりにも頻繁に見ます。私の推測によれば、それは人々に慰めを感じさせることです。何とか、美しいコードを書くための推奨ガイドラインに従っているかのように。 :P

NullオブジェクトのToString()を呼び出すと例外がスローされることはありません。たとえば、あなたの例では、 "Foo"キーがConfigurationのAppSettingsセクションに存在しない場合、NullReferenceExceptionがコードによってスローされます。

+0

+1それを指摘するために、おそらく彼はその例外をキャッチしてキーが存在しないことをユーザーに伝える –

関連する問題