「blah」が存在しない場合、ConfigurationManager.AppSettings [「blah」]は例外をスローしますか?


124

「blah」がweb / app.configに存在しない場合、ConfigurationManager.AppSettings ["blah"]は例外をスローしますか?

超怠惰な質問に心からお詫び申し上げます。


5
-1:あなたはすでにそれが怠惰な質問で実現してきましたので、実際にはそれはしようとしていないでしょう以下ここにこの質問を投稿よりも仕事?
Lasse V. Karlsen、2010

または、NameValueCollection.Itemプロパティのドキュメントを見て...
Tim Robinson

2
回答してくださった方、ありがとうございました。私はこのような質問の習慣を作らないようにします。
Ben Aston

49
Phh。このような質問を続けてください。MSDNを解析するよりも簡単なので、私と他の世界のgoogle configurationmanager appsettingsに存在しないキーがあるからです。IMOを少し楽にするもの。FそれらのDバッグのため賛成。
Cory Mawhorter 2014

31
あなたの怠惰な質問を見て、他の人を数年の時間を4年節約し、数えます。:)
Matt Beckman

回答:




7

いいえ、戻りますnull

AppSettingsあるNameValueCollectionの -あたりとして注意NameValueCollection.Getのページ:

このメソッドは、次の場合にnull参照(Visual BasicではNothing)を返します。1)指定されたキーが見つからない場合。2)指定されたキーが見つかり、それに関連付けられた値がnull参照(Visual BasicではNothing)の場合。この方法では、2つのケースを区別しません。


6

いいえ、戻りますnull

ConfigurationManager.AppSettings-MSDNドキュメントNameValueCollectionから:

Getメソッドは、指定されたキーが見つからないために返されるnullと、キーに関連付けられた値がnullのために返されるnullを区別しません。

(私の強調)


3

他の回答は、Itemプロパティのドキュメントを参照しています。次のコードスニペットを見て、それらが関連する理由がすぐに明らかにならない場合があります。

ConfigurationManager.AppSettings["blah"]

角かっこ構文は、C#でインデクサーにアクセスするために使用されます。これらは、配列と同じようにクラスにインデックスを付けることができる特別なプロパティです。NameValueCollection.Itemプロパティの定義を見ると、通常のプロパティ構文を使用していないことがわかります。thisキーワードとインデクサーパラメーターは、このプロパティをインデクサーとして定義するために使用されます。

public string this[
    string name
] { get; set; }

ドキュメントでは、インデクサーは暗黙的にItemと名付けられ、パラメーターは角括弧で囲まれています。

MSDNドキュメントに示されているインデクサー。

Getメソッドを参照した回答があった理由がはっきりしません-たぶん、一方が他方を呼び出しますか?

とにかく、質問に答えるために...

いいえ。存在しないキーにアクセスしても例外はスローされません。nullが返されます。

NameValueCollection.Itemプロパティドキュメントの関連セクションは次のとおりです。

このプロパティは、次の場合にnullを返します。1)指定されたキーが見つからない場合。2)指定されたキーが見つかり、それに関連する値がnullの場合。このプロパティは、2つのケースを区別しません。


-2

はいhttp://msdn.microsoft.com/en-us/library/system.configuration.configurationmanager.appsettings.aspx

編集:これは明らかに間違っています。以下の役立つコメントを残してください。


1
あなたの質問に対する答えは、@ Timが言及したようなものではありません。このページは、appsettingsを読み込めない場合は例外がスローされると指摘しました。ただし、値がappsettingsに存在しない場合、例外は発生しません。辞書に値が存在しないからといって、エラーをスローしても意味がありません。しかし、辞書が存在しない場合、それがエラーをスローする理由になります。(用語「辞書」は、任意のコレクションを参照するために使用されただけです。)
スピノン

そのリンクがあれば、例外がスローされると述べているNameValueCollection見つかりませんでした-すなわち、システム見つけることができませんでした任意の設定を。あなたが存在しない単一の値を取得しようとすると、名前値コレクションは...例外をスローしないでください
デクスター
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.