Błąd "Not all code paths return a value" - co zrobić?

0
private bool PobierzDaneZFormularza(out float mb_min, out float mb_max, out float mb_skok, out float mb_eps)
        {
            mb_min = 1;
            mb_max = 1;
            mb_skok = 0;
            mb_eps = 0;
            try
            {
                mb_min = float.Parse(this.textBox3.Text);
                mb_max = float.Parse(this.textBox4.Text);
                if (mb_min > mb_max)
                {
                    errorProvider1.SetError(textBox3, "Wartość minimalna musi być wieksza od maksymalnej!");
                    return false;
                }
                
                errorProvider1.SetError(textBox3, "");
            }
            catch (Exception)
            {
                errorProvider1.SetError(textBox3, "Wartość minimalna musi być wieksza od maksymalnej!");
                return false;
            }

            try
            {
                mb_skok = float.Parse(this.textBox5.Text);
                if ((Math.Abs(mb_max - mb_min) < mb_skok) || mb_skok < 0)
                {
                    errorProvider1.SetError(textBox5, "Skok musi byc mniejszy niż różnica między wartością minimalną i maksymalną i musi być większy od 0");
                    return false;
                }
                errorProvider1.SetError(textBox3, "");
                
            }
            catch (Exception)
            {
                errorProvider1.SetError(textBox5, "Skok musi byc mniejszy niż różnica między wartością minimalną i maksymalną i musi być większy od 0");
                return false;
            }

            try
            {
                mb_eps = float.Parse(this.textBox6.Text);
                if ((mb_eps <= 0) || (mb_eps >= 1))
                {
                    errorProvider1.SetError(textBox6, "Dokładność musi zawierać się w przedziale od 0 do 1. Podaj poprawną wartość.");
                    return false;
                }
                errorProvider1.SetError(textBox3, "");
                
            }
            catch (Exception)
            {
                errorProvider1.SetError(textBox6, "Dokładność musi zawierać się w przedziale od 0 do 1. Podaj poprawną wartość.");
                return false;
            }

                
        }

Wsykakuje błąd : '....PobierzDaneZFormularza(out float mb_min, out float mb_max, out float mb_skok, out float mb_eps)': Not all code paths return a value.

Jestem początkujący, więc hejterom dziękuję.

poprawienie tytułu wątku + dodanie znacznika <code class="csharp"> - fp

0

Sprawdź co się stanie jeśli te twoje "ify" nie są spełnione a jednocześnie nie poleci wyjątek. Otóż dojdziesz do końca funkcji a returna nie widać :(

0

Czyli rozumiem ze muszę dodać jakieś "elsy" (na wypadek gdy warucek z ifa nie jest spełniony)?

2

Nie. Musisz rozbic ta metode na kilka mniejszych metod. Wtedy juz sam bedziesz wiedzial co sie dzieje w Twoim kodzie.

1

Ten komunikat mówi o tym, że funkcja powinna zwracać wynik, ale istnieją sytuacje, w których go nie zwróci. Najprościej zwrócić jakąś domyślną wartość na końcu funkcji.

1 użytkowników online, w tym zalogowanych: 0, gości: 1