つ:帰りで:.NETのAppSettings歴史トリビア私は習慣的に働く前の開発者、一貫して使用する
ConfigurationSettings.AppSettings["Foo"].ToString()
のAppSettingsコレクションアイテムが既に文字列ですが、私は不思議になったので、それは私に少し小枝古くからの.net 1.0と1.1のコレクションでは、ToString()呼び出しを必要とするObjectオブジェクトとしてコレクションにアイテムが格納されましたか?
つ:帰りで:.NETのAppSettings歴史トリビア私は習慣的に働く前の開発者、一貫して使用する
ConfigurationSettings.AppSettings["Foo"].ToString()
のAppSettingsコレクションアイテムが既に文字列ですが、私は不思議になったので、それは私に少し小枝古くからの.net 1.0と1.1のコレクションでは、ToString()呼び出しを必要とするObjectオブジェクトとしてコレクションにアイテムが格納されましたか?
いいえ、AppSettings
は、常にNameValueCollection
で、string
キーとstring
という値です。
出典:1.1でMSDN
なしのAppSettingsは、文字列のNameValueCollectionのですが、私はVS2003でソリューションを見直したとのAppSettingsを取得中に私も()ToStringメソッドを見つけます。おそらくそれは開発者の習慣であるかもしれません。
すでに言及したように、ConfigurationSettings.AppSettings
はNameValueCollection
であり、そのアイテムを文字列として返します。
個人的には、私はこの種のコードを見たことがありません。最初の場所に文字列を返すかどうかにかかわらず、ToString()呼び出しをちょうどすべてのプロパティに接続しています。残念ながら、私はそれをあまりにも頻繁に見ます。私の推測によれば、それは人々に慰めを感じさせることです。何とか、美しいコードを書くための推奨ガイドラインに従っているかのように。 :P
NullオブジェクトのToString()
を呼び出すと例外がスローされることはありません。たとえば、あなたの例では、 "Foo"キーがConfigurationのAppSettingsセクションに存在しない場合、NullReferenceException
がコードによってスローされます。
+1それを指摘するために、おそらく彼はその例外をキャッチしてキーが存在しないことをユーザーに伝える –