문제

Exit Select와 관련하여 수집 한 몇 가지 질문이 있습니다 ...

  1. vb.net에서 Exit Select를 사용하는 이유가 있습니까?
  2. 그 이유는 성능과 관련이 있습니까?
  3. 출구 선택이 동일합니다 break;?

예 1

Select case Name
case "Mary"
'...
case "John"
'...
case else

end select

예 2

Select case Name
case "Mary"
'...
exit select

case "John"
'...
exit select

case else

end select
도움이 되었습니까?

해결책

사용하는 것과 동일하지 않습니다 break 키워드 switch C와 같은 언어의 진술. a switch, 브레이크 컨트롤을 생략하면 다음 경우로 떨어질 것입니다. 시각적 기본으로 Select, 통제는 넘어지지 않습니다. ㅏ break 이미 암시되어 있습니다.

그러나 다른 레벨의 코드를 if 차단하다. 예를 들어:

Select Case SomeEnumVar
    Case SomeEnum.SomeValue1
         If Not SomeCondition Then Exit Select
         'Do something
    Case SomeEnum.SomeValue2
         'Do something else
    Case Else
         'Default case
End Select

이 동등한 코드보다 조금 더 좋습니다.

Select Case SomeEnumVar
    Case SomeEnum.SomeValue1
         If SomeCondition Then
             'Do something
         End If
    Case SomeEnum.SomeValue2
         'Do something else
    Case Else
         'Default case
End Select

이 두 샘플 간의 성능 차이는 다른 요인에 비해 거의 확실하지 않습니다.

또 다른 용도는 많은 경우가 있고 사례 중 하나가 배치되어 경기가 다른 모든 것을 확인하는 것을 중지하고 싶다는 것을 의미합니다. 이것은 이미 발생하므로 빈 사례 진술이있을 수 있습니다. 그러나이 사건이 다른 일을하지 않을 것으로 기대하는 관리자에게 명확하게 설명하기 위해 출구 선택을 추가 할 수도 있습니다.

다른 팁

글쎄 ... 그것은 goto를 사용하는 것과 같습니다 ... 일단 올바른 케이스를 찾으면 Visual Basic에서는 사례를 "종료"하는 데 아무 소용이 없습니다. C#에서는 케이스를 종료해야합니다 (이 경우 휴식을 취하면).

요점은 케이스 범위의 중간에 다음과 같은 것과 같은 것을 사용할 수 있다는 것입니다.

Case 1
   Do something
   Do something
   Evaluate
      exit select
   Else
      Do something

못 생겼지 만 그렇게 할 수 있습니다 ...

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top