AndAlso 및 OrEse 연산자를 항상 사용해야 합니까?
제가 운영자가 아닌 운영자를 사용하고 싶지 않은 상황이 있습니까?…또는 운영자가 아닌 운영자를 사용하지 않으려는 경우가 있습니까?
MSDN에서:
단락 트레이드 오프
단락은 논리 연산의 결과를 변경할 수 없는 식을 평가하지 않음으로써 성능을 향상시킬 수 있습니다.그러나 해당 식이 추가 작업을 수행하는 경우 단락은 해당 작업을 건너뜁니다.예를 들어, 식에 함수 프로시저 호출이 포함된 경우 식이 단락되어 있고 함수에 포함된 추가 코드가 실행되지 않으면 해당 프로시저가 호출되지 않습니다.프로그램 논리가 해당 추가 코드에 의존하는 경우 단락 연산자를 피해야 합니다.
And 연산자가 아닌 AndAlso 연산자를 사용하고 싶지 않은 상황이 있습니까?
물론입니다. 식의 양쪽을 모두 평가하려면 다음과 같이 하십시오.예를 들어, 양쪽이 부작용이 있는 다른 작업의 결과로 불리언을 반환하는 메서드 호출인 경우가 이에 해당할 수 있습니다.
하지만 일반적으로,AndAlso
/OrElse
사용할 때마다&&
/||
C/C++/C#에서 물론 대부분의 시간을 차지합니다.
VB.net 의 기능은 완전히 다르며 둘 다 사용 사례가 있습니다(가장 일반적인 사용의 경우 둘 다 작동합니다).
AndAlso
그리고.OrElse
조건부 연산자이며 true 또는 false 부울 값을 반환하고 변경할 수 없는 결과에 도달할 때까지 필요한 항목만 평가합니다(AndAlso의 경우 false, OrElse의 경우 true).이는 다음과 같습니다.&&
그리고.||
C# 및 Java와 같은 언어로.
And
그리고.Or
비트 연산자는 전달된 모든 비트를 결합하여 결과로 만듭니다. 이러한 비트는 항상 추가 평가에 의해 변경될 수 있으므로 모든 것을 평가해야 합니다.이는 다음과 같습니다.&
그리고.|
C# 및 Java와 같은 언어로.
대부분의 경우 및/또는 작업을 볼 때 조건부 결과가 필요합니다.비트 연산은 참 또는 거짓 값을 생성하며 (일반적으로) 적절한 조건부 연산자의 참 또는 거짓 결과와 일치합니다. 모든 것을 평가하기 때문에 평균적으로 약간 더 오래 걸립니다.
비트 연산자는 값의 특정 비트에 관심을 가질 때 사용되며, 설정 또는 권한을 최대한 소형으로 저장하고 가능한 한 빨리 읽고 적용하는 데 사용되는 경우가 많습니다.예를 들어 유닉스 기반 시스템의 파일에 대한 읽기/쓰기/실행 권한은 다음과 같이 비트 플래그를 사용합니다.
- - 명령어
- 권한 - 쓰기권
- 권한 - 읽기권
그래서 10진수로 7의 값은 3가지 모두를 할 수 있고, 4의 값은 읽기만 할 수 있고, 6은 읽기와 쓰기를 할 수 있습니다.을 쓰려고 , 은 그들의 합니다.And 0b010
해당 위치의 비트를 기준으로 진실 또는 거짓 결과를 얻습니다.할 수 하려면 사자가파실행수있값도을다업사다음니용합을면려하트를 사용합니다.Or 0b001
현재 사용 권한에 대해 검색하고 결과를 저장합니다.
차이점은 다음과 같습니다.
및 =진리) 0b001(진리) 및 0b010(진리) = 0b000(진리)
및= True0b001 (진리) 및 0b010 (진리) = 참
언급URL : https://stackoverflow.com/questions/55013/should-i-always-use-the-andalso-and-orelse-operators
'programing' 카테고리의 다른 글
VBA에서 전달된 (변수) 변수의 차원 수를 반환하는 방법 (0) | 2023.05.13 |
---|---|
"자원 생성" 작업 CLR2 런타임 오류 (0) | 2023.05.13 |
단일 파일만 저장 (0) | 2023.05.13 |
varchar(max) 변수의 최대 크기 (0) | 2023.05.13 |
PostgreSQL에서 부호 없는 정수를 사용할 수 없는 이유는 무엇입니까? (0) | 2023.05.13 |