죄송합니다. 내 질문을 공식화하는 더 좋은 방법을 생각할 수 없어 복제본이 될 수 있습니다. 나는 사전에 사과한다. 일반적으로 저는 이것을 직접 테스트 할 것이지만 현재 프로그래밍 할 수없는 워크 스테이션에 있습니다. 함수가있는 조건으로 인해 도달하지 않은 코드가 발생할 수 있습니까?
우리가 출력 내가 testFunctions를 호출 할 때이 될 것입니다 무엇 다음 코드public void testFunctions()
{
if(someFunction1() && someFunction2())
{
Console.WriteLine("I will never get here.");
}
}
private bool someFunction1()
{
Console.Write("Obviously I got here");
return false;
}
private bool someFunction2()
{
Console.WriteLine(", but will I ever get here?");
return false;
}
을 말해봐?
Obviously I got here
또는 :
Obviously I got here, but will I ever get here?
C#에서는 "분명히 여기 있습니다"라는 메시지가 나타나고 두 번째 조건에 도달하지 않습니다. 따라서 null 값을 확인해야하는 경우 먼저 그렇게합니다. 그러나 모든 언어에서는 그렇지 않습니다. 예를 들어 Javascript는 두 조건을 모두 실행합니다. –
자바 스크립트는 두 가지 조건을 모두 실행합니까? 나는 그것을 의심한다.어쩌면 그것도 js 엔진에 의존적이긴하지만 적어도 chrome (v8 엔진)에서는 첫 번째가 false로 평가되면 '&&'표현식에서 두 함수를 모두 실행하지 않습니다. –
또한, 내가 아는 한, 자바 스크립트에서 정확히 C#에서와 동일합니다 - 당신은 또한 항상 표현의 양쪽을 실행하는'&'연산자를 사용할 수 있습니다. –