Wyzwanie
Biorąc pod uwagę następującą metodę C #:
private static bool Test(bool a, bool b)
{
if (a && b) return false;
if (a) if (b) return true;
return false;
}
Dostarczyć wartości a
i b
tak, że true
nie jest zwracana.
Warunki wygranej
Pierwszy wpis, który może podać poprawne argumenty, aby dana metoda oceniła true
wygrane.
programming-puzzle
c#
aktor
źródło
źródło
Odpowiedzi:
To drukuje
True
dla mnie z implementacją C #, która jest dostarczana z Visual Studio 2015. Właściwie nie znam żadnego C #, ale pomyślałem, że spróbuję napisać trochę kodu C i sprawdzić, czy to zadziała. Miałem nadzieję, że kompilator przyjmie, że True jest zawsze reprezentowany jako 1 i użyje bitowego AND. W trybie debugowania tak właśnie jest (działało to również w wersji Release). Wykorzystuje bitowe AND dla pierwszego warunku i dwa porównania do zera dla drugiego:źródło