「blah」がweb / app.configに存在しない場合、ConfigurationManager.AppSettings ["blah"]は例外をスローしますか?
超怠惰な質問に心からお詫び申し上げます。
NameValueCollection.Item
プロパティのドキュメントを見て...
「blah」がweb / app.configに存在しない場合、ConfigurationManager.AppSettings ["blah"]は例外をスローしますか?
超怠惰な質問に心からお詫び申し上げます。
NameValueCollection.Item
プロパティのドキュメントを見て...
回答:
NameValueCollection.Item Property(String)に関するMSDNドキュメントから:
注意
このプロパティは、次の場合にnullを返します。1)指定されたキーが見つからない場合。2)指定されたキーが見つかり、それに関連する値がnullの場合。このプロパティは2つのケースを区別しません。
いいえ、戻りますnull
。
AppSettingsあるNameValueCollectionの -あたりとして注意にNameValueCollection.Getのページ:
このメソッドは、次の場合にnull参照(Visual BasicではNothing)を返します。1)指定されたキーが見つからない場合。2)指定されたキーが見つかり、それに関連付けられた値がnull参照(Visual BasicではNothing)の場合。この方法では、2つのケースを区別しません。
いいえ、戻りますnull
。
ConfigurationManager.AppSettings
は-MSDNドキュメントNameValueCollection
から:
Getメソッドは、指定されたキーが見つからないために返されるnullと、キーに関連付けられた値がnullのために返されるnullを区別しません。
(私の強調)
他の回答は、Itemプロパティのドキュメントを参照しています。次のコードスニペットを見て、それらが関連する理由がすぐに明らかにならない場合があります。
ConfigurationManager.AppSettings["blah"]
角かっこ構文は、C#でインデクサーにアクセスするために使用されます。これらは、配列と同じようにクラスにインデックスを付けることができる特別なプロパティです。NameValueCollection.Itemプロパティの定義を見ると、通常のプロパティ構文を使用していないことがわかります。thisキーワードとインデクサーパラメーターは、このプロパティをインデクサーとして定義するために使用されます。
public string this[
string name
] { get; set; }
ドキュメントでは、インデクサーは暗黙的にItemと名付けられ、パラメーターは角括弧で囲まれています。
Getメソッドを参照した回答があった理由がはっきりしません-たぶん、一方が他方を呼び出しますか?
とにかく、質問に答えるために...
いいえ。存在しないキーにアクセスしても例外はスローされません。nullが返されます。
NameValueCollection.Itemプロパティドキュメントの関連セクションは次のとおりです。
このプロパティは、次の場合にnullを返します。1)指定されたキーが見つからない場合。2)指定されたキーが見つかり、それに関連する値がnullの場合。このプロパティは、2つのケースを区別しません。
はいhttp://msdn.microsoft.com/en-us/library/system.configuration.configurationmanager.appsettings.aspx
編集:これは明らかに間違っています。以下の役立つコメントを残してください。
NameValueCollection
見つかりませんでした-すなわち、システム見つけることができませんでした任意の設定を。あなたが存在しない単一の値を取得しようとすると、名前値コレクションは...例外をスローしないでください