int x;
if (Q())
x = 123;
if (R())
Console.WriteLine(x); // illegal
int x;
if (Q())
x = 123;
if (false)
Console.WriteLine(x); // legal!!
이전에 '할당되지 않은 지역 변수 사용'컴파일 타임 예외가 발생하는 이유는 두 번째 이유가 무엇인지 알 수 있습니까?할당되지 않은 지역 변수 미스테리
if (false)로 인해 컴파일러에서 두 번째 코드에 도달 할 수 없기 때문에. 컴파일러는 이것에 대해 경고를 던질 것이다. –
블로그 게시물에서 코드를 복사했지만 설명을 복사하지 않았습니다. http://blogs.msdn.com/b/ericlippert/archive/2012/03/05/why-are-local-variables-definitely-assigned -in-unreachable-statements.aspx –