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.