Kompilator .NET i „Nie wszystkie ścieżki kodu zwracają wartość”

Dlaczego w poniższym kodzie kompilator .NET nie może ustalić, czy wszystkie ścieżki kodu zwracają wartość?

<code>bool Test(bool param) {
    bool test = true;
    if (param)
        test = false;
    else
        test = false;
    if (!test)
        return false;
}
</code>

błąd CS0161: Nie wszystkie ścieżki kodu zwracają wartość!

Kod można refaktoryzować - ale kompilator tego nie sugeruje. Jednak wszystkie ścieżki powrotu są objęte ochroną - dlaczego więc kompilator skarży się, że tak nie jest?

Edytuj: Myślę, że wniosek jest następujący:

<code>(error CS0161) + (all code paths obviously return a value) => refactor code.  
</code>

Kiedy już nabędziesz zwyczaju tłumaczenia, myślę, że wszystko jest w porządku.

questionAnswers(5)

yourAnswerToTheQuestion