을 통해 가을 DialogResult를 테스트하고 제공하는 스위치 문을 코딩하는 방법. 이 코드는 루프에 대한 내부 : 예 "나는 함수의 반환 값을 테스트하는 이상한 결과를 얻고 논리
DialogResult result = MessageBox.Show(mbText.ToString(), caption, button, icon);
switch (result)
{
case DialogResult.Yes:
return DialogResult.Yes;
case DialogResult.No:
return DialogResult.No;
case DialogResult.Cancel:
return DialogResult.Cancel;
}
것은 내가 클릭하면 다음과 같습니다
DialogResult result = EvalReturnFromWS(returnMsg);
switch (result)
{
case DialogResult.Yes:
case DialogResult.No:
continue;
default:
break;
}
이 (내 단위 테스트에 난 항상"예 "버튼을 클릭) 호출 된 함수에서 조각입니다 "그것은 DialogResult를 반환합니다. 그렇지만 호출 코드에서 다시 실행은"아니오 "인 2 번째 사례로 넘어 가고 이것이 계속 의도하지 않는 것입니다.
은 다른 곳에 StackOverflow에, 나는 DialogResult.Yes 통해 가을에 봉사 할 것입니다 위해이 같은 제안에 "가을 스루"사건을 코딩하는 스레드를 보았다. 한마디로
는 경우 YES, I는 스위치 케이스 (들)의 종료 후 다음 문을 실행을 다시 시작하고 싶다. 즉, "넘어져"있습니다.
편집 - 혼란스러워합니다. 예, 상단 스 니펫은 for 루프 안에 있습니다. 두 번째 스 니펫은 호출 된 함수 안에 있습니다 (이 코드는 MessageBox.Show를 발행합니다). 당신이 원하는 무엇
두 번째 스 니펫이 '결과를 반환'하지 못하는 이유는 무엇입니까? 또는 적어도 Yes 또는 No 또는 Cancel 인 경우 'return result'? – BoltClock
흠, 혼란 스럽네. switch 구문과 관련하여 "fall trough"는 switch 문을 종료하지 않고 다음 사례로 넘어가는 것을 의미합니다. – steinar
'switch' 문맥에서, "fall through"는 "하나의'case'에서 다음으로 넘어 간다"는 것을 의미합니다."switch"다음에 다음 명령문으로 실행을 다시 시작한다는 의미라면 "break"라고 말해야합니다. – AakashM