A method can calculate a value and return it to the caller.

return value A return value is the result a method gives back after it runs.

Return Values

side
ReturnValues.cs
Replay: real traced execution (multi-file project)
using System;

class Program
{
    static int Square(int value)
    {
        return value * value;
    }

    static void Main()
    {
        int side = 4;
        int area = Square(side);

        Console.WriteLine($"side={side}");
        Console.WriteLine($"area={area}");
    }
}
using System;

class Program
{
    static int Square(int value)
    {
        return value * value;
    }

    static void Main()
    {
        int side = 2;
        int area = Square(side);

        Console.WriteLine($"side={side}");
        Console.WriteLine($"area={area}");
    }
}
using System;

class Program
{
    static int Square(int value)
    {
        return value * value;
    }

    static void Main()
    {
        int side = 6;
        int area = Square(side);

        Console.WriteLine($"side={side}");
        Console.WriteLine($"area={area}");
    }
}
  1. side ← 4

    10static void Main()11{12    int side→ 4 = 4; //@side=2, 613    int area = Square(side4);
  2. static int Square(int value)

    4{5    static int Square(int value4)6    {7        return value4 * value;8    }
  3. area ← 16

    12    int side = 4; //@side=2, 613    int area→ 16 = Square(side4);1415    Console.WriteLine($"side={side4}");16    Console.WriteLine($"area={area16}");17}
    outputside=4
    area=16
  1. side ← 2

    10static void Main()11{12    int side→ 2 = 2;13    int area = Square(side2);
  2. static int Square(int value)

    4{5    static int Square(int value2)6    {7        return value2 * value;8    }
  3. area ← 4

    12    int side = 2;13    int area→ 4 = Square(side2);1415    Console.WriteLine($"side={side2}");16    Console.WriteLine($"area={area4}");17}
    outputside=2
    area=4
  1. side ← 6

    10static void Main()11{12    int side→ 6 = 6;13    int area = Square(side6);
  2. static int Square(int value)

    4{5    static int Square(int value6)6    {7        return value6 * value;8    }
  3. area ← 36

    12    int side = 6;13    int area→ 36 = Square(side6);1415    Console.WriteLine($"side={side6}");16    Console.WriteLine($"area={area36}");17}
    outputside=6
    area=36

Follow the Return

  1. side starts as 4.
  2. Square(side) passes 4 into the method.
  3. The method calculates 4 * 4.
  4. return sends 16 back to the caller.
  5. The caller stores it in area. | side | calculation | returned area | | --- | --- | --- | | 4 | 4 * 4 | 16 | | 2 | 2 * 2 | 4 | | 6 | 6 * 6 | 36 |

Exercise: ReturnValues.cs

Reproduce side=4 and area=16, then use the pinned side variants 2 and 6 to predict area=4 and area=36.