두 개의 조건이 있는 If
문이 있는데 첫 번째 조건이 실패하면 두 번째 조건도 고려되나요, 아니면 else
로 바로 넘어가나요? 다음 예제에서 myList.Count == 0
인 경우 myString
이 값
과 비교될까요, 아니면 그냥 else
로 바로 넘어갈까요?
if(myList.Count > 0 && myString.Equals("value"))
{
//Do something
}
else
{
//Do something else
}
단일 변경일 redhat. 경우 앰퍼샌드:
if(myList.Count > 0 & myString.Equals("value"))
모두 평가할 수 있을 것이라고 밝혔다.
만약 논리 연산자는 및 (& &;) 첫 번째는 거짓값 표현식에서는 신앙이니라 기술서임을 다시그것들을 평가하십시오 경우 - 첫 번째 평가하십시오 하지 못할 것이다. 참조 - 메서드를 호출하기 전에 이 있는지 확인하는 데 유용합니다 가변입니다 피하기 위해 null null 포인터입니다 idfsysobject.
만약 논리 연산자 () 는 또는 신앙이니라 기술서임을 다시그것들을 평가하십시오 경우 - 첫 번째 평가하십시오 사실이라면 표현식에서는 첫 번째 않을 것이라고 말했다.
컴파일러에도 및 런타임을 최적화되며 엔드입니다 비헤이비어를
다음의 고려해보십시오.
static int? x;
static int? y;
static void Main(string[] args)
{
x = 5;
if (testx() & testy())
{
Console.WriteLine("test");
}
}
static Boolean testx()
{
return x == 3;
}
static Boolean testy()
{
return y == 10;
}
성미 급한 것은 비록 테스테스 및 추적 기능은 모두 경우 통해 에보라테드 테스테스 거짓값.
테스트하려면 변경하면 & &; 그 첫 번째는 검사했어요 미디어만을
왼쪽에서 오른쪽으로 평가하실 적립율은 표현식에서는 있기 때문에 로털 간단합니다. False 이면 중단할 것이라고 평가. 또한 가장 큰 우선순위를 작업 환경에서 표현식입니다.
>. 이 조건 및 연산자 (& &;) 단, 그 두 번째 피연산자 필요한 경우 그 부울 피연산자로 논리적, 수행 평가. [조건 및 연산자 (& &;) sup> MSDN< /sup> <;;;] (https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/operators/conditional-and-operator)
이 일련의 [단면에는 열거합니다 C # 로 시작하는 등 가장 높은 우선 순위] (https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/operators/).