Programming "Not all code paths return a value"

Bauhaus

Well-known member
Program newbie here, ik krijg bovenstaande error bij dit stukje:

Code:
        private void ReadScores(List<int> scoresList)
        {
            StreamReader inputFile = File.OpenText("TestScores.txt");

            while (!inputFile.EndOfStream)
            {
                scoresList.Add(int.Parse(inputFile.ReadLine()));
            }

            inputFile.Close();
        }

        private void DisplayScores(List<int> scoresList)
        {
            foreach (int score in scoresList)
            {
                testScoresListBox.Items.Add(score);
            }
        }

        private double Average(List<int> scoresList)
        {
            int total = 0;
            double average;

            foreach (int score in scoresList)
            {
                total += score;
            }

            average = (double)total / scoresList.Count;
            //avg = average;

            return average;
        }
        private int AboveAverage(List<int> scoresList)
        {
            int numAbove = 0;

            double avg = Average(scoresList);

            foreach (int score in scoresList)
            {
                if (score > avg)
                {
                    numAbove++;
                }
            }
        }
        private int BelowAverage(List<int> scoresList)
        {
            int numBelow = 0;

            double avg = Average(scoresList);

            foreach (int score in scoresList)
            {
                if (score < avg)
                {
                    numBelow++;
                }
            }
        }

        private void getScoresButton_Click(object sender, EventArgs e)
        {
            double averageScore;
            int numAboveAverage;
            int numBelowAverage;

            List<int> scoresList = new List<int>();
            ReadScores(scoresList);
            DisplayScores(scoresList);

            averageScore = Average(scoresList);
            averageLabel.Text = averageScore.ToString("n1");

            numAboveAverage = AboveAverage(scoresList);
            aboveAverageLabel.Text = numAboveAverage.ToString();

            numBelowAverage = BelowAverage(scoresList);
            belowAverageLabel.Text = numBelowAverage.ToString();
        }

The error toont hij bij de AboveAverage en BelowAverage methods (building errors).
 
Je returned geen waardes in betreffende functies (dus bvb. op het einde 'return numAbove of return numBelow').

EDIT: de error betekend trouwens dat als je alle mogelijke paden door je code beschouwd (dus bijvoorbeeld rekening houd met alle if/else mogelijkheden en bijhorende uit te voeren code blocks), sommigen paden geen waarde returnen als laatste stap.
 
Op het einde van AboveAverage deze lijn nog toevoegen:

Code:
return numAbove;

Hetzelfde bij BelowAverage, maar dan met numBelow.
 
Terug
Bovenaan