가능한 중복 : (놀랍게도 컴파일하고 오류없이 실행) 변수 무언가 경우이 선언되지 않으며,이 스위치 문에서
C# switch variable initialization: Why does this code NOT cause a compiler error or a runtime error?switch 문에서이 변수를 선언하지 않고 어떻게 사용할 수 있습니까?
및 사례 1 결코 실행합니다. 어떻게 유효합니까? 어떻게 변수를 선언하지 않고 사용할 수 있습니까?
switch(2){
case 1:
string something = "whatever";
break;
case 2:
something = "where??";
break;
}
'뭔가'를 출력하면 콘솔에서 무엇을 말합니까? 사실 '어디에서?' '왜이 작동하는지'에 대해서는 : switch 문과 같은 '같은 블록'에 변수를 만들면 실제 코드에 도달했는지 여부에 관계없이 변수를 생성한다는 것만을 베팅 할 수 있습니다. – ATaylor
@ATaylor - 아니요, '무언가'의 범위는 '스위치'로 제한됩니다. –
이 질문의 대답을 확인하십시오 : [http://stackoverflow.com/questions/864153/c-sharp-switch-variable-initialization-why-does-this-code-not-cause-a- 컴파일러] [1] [1] : http://stackoverflow.com/questions/864153/c-sharp-switch-variable-initialization-why-does-this-code-not-cause-a -compiler –