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

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

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



답변

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


답변

로부터 NameValueCollection.Item 속성 (문자열)에 대한 MSDN 문서 :

주의

이 속성은 다음과 같은 경우에 null을 반환합니다. 1) 지정된 키를 찾을 수없는 경우; 2) 지정된 키가 발견되고 관련 값이 null 인 경우. 이 속성은 두 경우를 구분하지 않습니다.


답변

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

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

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


답변

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

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

Get 메서드는 지정된 키를 찾을 수 없기 때문에 반환되는 null과 키와 관련된 값이 null 이기 때문에 반환되는 null을 구분하지 않습니다 .

(내 강조)


답변

다른 답변은 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 인 경우. 이 속성은 두 경우를 구분하지 않습니다.


답변

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

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


답변