"blah"가없는 경우 ConfigurationManager.AppSettings [ "blah"]에서 예외가 발생합니까?


124

web / app.config에 "blah"가 없으면 ConfigurationManager.AppSettings [ "blah"]에서 예외가 발생합니까?

매우 게으른 질문에 대해 진심으로 사과드립니다.


5
-1 : 당신은 그것이 게으른 질문이라는 것을 이미 깨달았 기 때문에, 실제로이 질문을 여기에 게시하는 것보다 노력하지 않겠습니까?
Lasse V. Karlsen

또는 NameValueCollection.Item부동산 에 대한 문서를 살펴보면 ...
Tim Robinson

2
답변 해주신 분들께 감사드립니다. 이런 질문을 버릇없이 만들려고 노력하겠습니다.
Ben Aston

49
Pfh. MSDN을 구문 분석하는 것보다 쉽기 때문에 나와 다른 사람들이 Google configurationmanager appsettings 키가 존재하지 않기 때문에 이와 같은 질문을 계속하십시오. 삶을 좀 더 쉽게 만드는 모든 것 IMO. F 그 Dbags 때문에 Upvoted.
Cory Mawhorter 2014

31
당신의 게으른 질문을 보시고 다른 사람들을 4 년 동안 몇 분 동안 절약하고 계산하십시오. :)
Matt Beckman 2014 년

답변:




7

아니요,을 반환합니다 null.

appSettings는은이다 NameValueCollection은 - 당으로 주의NameValueCollection.Get의 페이지 :

이 메서드는 다음과 같은 경우에 null 참조 (Visual Basic의 경우 Nothing)을 반환합니다. 1) 지정된 키를 찾을 수없는 경우; 2) 지정된 키가 있고 관련 값이 null 참조 (Visual Basic의 경우 Nothing) 인 경우. 이 방법은 두 경우를 구분하지 않습니다.


6

아니요,을 반환합니다 null.

ConfigurationManager.AppSettingsA는 NameValueCollection-에서 MSDN 설명서 :

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

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

편집 : 이것은 분명히 잘못되었습니다. 아래의 유용한 의견을 남겨주세요.


1
귀하의 질문에 대한 대답은 @Tim이 언급 한 것처럼 아니오입니다. 페이지는 appsettings를로드 할 수없는 경우 예외가 발생한다고 말했습니다. 그러나 값이 appsettings에 없으면 예외가 발생하지 않습니다. 값이 사전에 존재하지 않는다고해서 오류를 던지는 것은 정말 의미가 없습니다. 그러나 사전이 존재하지 않으면 오류가 발생하는 이유가됩니다. (사전이라는 용어는 임의의 컬렉션을 가리키는 데 사용되었습니다.)
spinon

그 링크는이 경우 예외가 발생되는 것을 말한다 NameValueCollection찾을 수 없습니다 - 즉, 시스템 찾을 수 없습니다 어떤 설정을. 존재하지 않는 단일 값을 검색하려고하면 Name Value Collections에서 예외가 발생하지 않습니다.
Dexter
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.