2013-02-15 4 views
0

나는영어로 이것은 무엇을 의미합니까?

If (ProcessID <> 0) And ("O" <> sProcessStatus And "E" <> sProcessStatus) Then 
    ' Do stuff 
End If 

내가 이해하지 못하는 것은 둘째 조건이다,라고 코드 조각 가로 질러 ... 내가 해제 방법입니다 경우 누군가가 나에게 할 수 있습니다.

sProcessStatus이 O가 아닌 경우 다음 두 번째 조건에서 E가 실행됩니까?

온 전성 검사.

+2

나는 당신의 해석에 동의합니다. 다른 것은 의미가 없습니다. –

+0

사이드 노트 : 거의 모든 경우에'And' 대신'AndAlso'를 사용하십시오. 전자는 첫 번째가 '참'으로 평가되는 경우에만 두 번째 조건을 평가하고 후자는 항상 모든 조건을 평가합니다. 이것은 덜 효율적이며 부작용을 일으킬 수 있습니다. 이것을 고려해보십시오 :'str IsNot Nothing And 또한 str.ToLower = "o"'는 결코 예외를 던지지 않을 것이지만'str ​​IsNot Nothing And str.ToLower = "o"는'str'이'Nothing' 일 경우 않습니다. 'OrElse'와'Or'도 마찬가지입니다. –

+0

@Tim Why? 첫 번째 조건이 거짓이면 왜 나머지를 평가해야합니까? – Andrew

답변

1

(이 올바른 구문 단지 읽기 쉽게 아님) 동작을 다시 말하면

수행 E없는 경우

+0

요다 조건. 나는 그것을 좋아한다. 고마워. –

+3

하나의 메모 ... 왜냐하면 그들은 모두 ands ... 괄호가 필요하지 않기 때문에 ... – Andrew

0

첫 번째 조건이 아닐 경우 0
AND
두 번째 조건이 "O"가 아니며 "E"가 아닌 경우 뭔가 수행하십시오. 예. sProcessStatus는 O 아니며 sProcessStatus 다음

if spProcessSatus NOT IN ('O','E') { 
process 
} 
0

제 2 부분을 말하고

  • ProcessID 제로
  • ,369 이외의 : 예, 그 다음의 모든 조건에 해당하는 경우에만 사실을 의미합니다
  • sProcess은 꼭 요다 조건 사랑 "O" 또는

"E" 이외의 다른입니다. "O"그렇지 않습니다! "E"가있는 힘은 그렇지 않습니다. ...

관련 문제