class Program
{
static void Main(string[] args)
{
bool success = true;
int[] array = { 10, 15, 20 };
foreach (var i in array)
success = success && SynchronizeAccount(i);
}
static bool SynchronizeAccount(int i)
{
Console.WriteLine(i);
return false;
}
}
출력이 10입니다. 첫 번째 단계 후 'success'가 false가되고 절대로 true가되지 않으므로 C#이 첫 번째 반복 이후 루프 실행을 중지합니다. 하지만 SynchronizeAccount의 SIDE 효과가 필요합니다. '성공'값이 아닙니다.부울 AND 식의 양쪽을 평가하지 않습니다.
논리에 결함이있는 것보다 컴파일러의 버그가 더 많습니다. –
@GrantWinney 아니요, 컴파일러의 버그입니다.) – MichaC
정말 컴파일러에서 버그를 발견했다고 생각하십니까? 행운을 구입하지 않고도 복권에 백만 달러를 얻는 것이 더 쉽습니다. –