Start with a tiny C# program that stores a name and prints a greeting.

Main method A runnable C# console program starts in a `Main` method.

Hello C#

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

class Program
{
    static void Main()
    {
        string name = "C#";
        string message = $"Hello, {name}!";

        Console.WriteLine(message);
    }
}
using System;

class Program
{
    static void Main()
    {
        string name = "Ada";
        string message = $"Hello, {name}!";

        Console.WriteLine(message);
    }
}
using System;

class Program
{
    static void Main()
    {
        string name = "Grace";
        string message = $"Hello, {name}!";

        Console.WriteLine(message);
    }
}
  1. name ← C#, message ← Hello, C#!

    4{5    static void Main()6    {7        string name→ C# = "C#"; //@name="Ada", "Grace"8        string message→ Hello, C#! = $"Hello, {nameC#}!";910        Console.WriteLine(messageHello, C#!);11    }
    outputHello, C#!
  1. name ← Ada, message ← Hello, Ada!

    4{5    static void Main()6    {7        string name→ Ada = "Ada";8        string message→ Hello, Ada! = $"Hello, {nameAda}!";910        Console.WriteLine(messageHello, Ada!);11    }
    outputHello, Ada!
  1. name ← Grace, message ← Hello, Grace!

    4{5    static void Main()6    {7        string name→ Grace = "Grace";8        string message→ Hello, Grace! = $"Hello, {nameGrace}!";910        Console.WriteLine(messageHello, Grace!);11    }
    outputHello, Grace!

Follow the Greeting

  1. name starts as C#.
  2. The program builds Hello, C#!.
  3. message becomes Hello, C#!.
  4. The program prints Hello, C#!. | name | output | | --- | --- | | C# | Hello, C#! | | Ada | Hello, Ada! | | Grace | Hello, Grace! |

Exercise: Hello.cs

Reproduce Hello, C#!, then use the pinned names Ada and Grace to predict each greeting.