Methods name reusable work and return a result to the caller.

method call A method call runs the named method and can use the returned value in another expression.

Methods

side
Methods.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 = 5;
        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 = 3;
        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 = 8;
        int area = Square(side);

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

    10static void Main()11{12    int side→ 5 = 5; //@side=3, 813    int area = Square(side5);
  2. static int Square(int value)

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

    12    int side = 5; //@side=3, 813    int area→ 25 = Square(side5);1415    Console.WriteLine($"side={side5}");16    Console.WriteLine($"area={area25}");17}
    outputside=5
    area=25
  1. side ← 3

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

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

    12    int side = 3;13    int area→ 9 = Square(side3);1415    Console.WriteLine($"side={side3}");16    Console.WriteLine($"area={area9}");17}
    outputside=3
    area=9
  1. side ← 8

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

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

    12    int side = 8;13    int area→ 64 = Square(side8);1415    Console.WriteLine($"side={side8}");16    Console.WriteLine($"area={area64}");17}
    outputside=8
    area=64

Follow the Method Call

  1. side starts at 5.
  2. Square(side) sends 5 into the method.
  3. Square returns value * value.
  4. area becomes 25.
  5. The program prints side=5 and area=25. | side | area | | --- | --- | | 3 | 9 | | 5 | 25 | | 8 | 64 |

Exercise: Methods.cs

Reproduce area=25 for side 5, then use the pinned sides 3 and 8 to predict each area.