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ść?
bool Test(bool param) {
bool test = true;
if (param)
test = false;
else
test = false;
if (!test)
return false;
}
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:
(error CS0161) + (all code paths obviously return a value) => refactor code.
Kiedy już nabędziesz zwyczaju tłumaczenia, myślę, że wszystko jest w porządku.