Constants name fixed values, and enums name a small set of choices.

enum An enum defines a named set of related values.

Constants and Enums

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

enum Priority
{
    Low,
    Medium,
    High
}

class Program
{
    static void Main()
    {
        const int BaseMinutes = 30;
        Priority priority = Priority.Medium;
        int extraMinutes = priority == Priority.High ? 15 : 5;
        int totalMinutes = BaseMinutes + extraMinutes;

        Console.WriteLine($"priority={priority}");
        Console.WriteLine($"total={totalMinutes}");
    }
}
using System;

enum Priority
{
    Low,
    Medium,
    High
}

class Program
{
    static void Main()
    {
        const int BaseMinutes = 30;
        Priority priority = Priority.Low;
        int extraMinutes = priority == Priority.High ? 15 : 5;
        int totalMinutes = BaseMinutes + extraMinutes;

        Console.WriteLine($"priority={priority}");
        Console.WriteLine($"total={totalMinutes}");
    }
}
using System;

enum Priority
{
    Low,
    Medium,
    High
}

class Program
{
    static void Main()
    {
        const int BaseMinutes = 30;
        Priority priority = Priority.High;
        int extraMinutes = priority == Priority.High ? 15 : 5;
        int totalMinutes = BaseMinutes + extraMinutes;

        Console.WriteLine($"priority={priority}");
        Console.WriteLine($"total={totalMinutes}");
    }
}
  1. BaseMinutes ← 30, priority ← Medium, extraMinutes ← 5, totalMinutes ← 35

    11{12    static void Main()13    {14        const int BaseMinutes→ 30 = 30;15        Priority priority→ Medium = Priority.Medium; //@priority=Priority.Low, Priority.High16        int extraMinutes→ 5 = priorityMedium == Priority.High ? 15 : 5;17        int totalMinutes→ 35 = BaseMinutes + extraMinutes5;1819        Console.WriteLine($"priority={priorityMedium}");20        Console.WriteLine($"total={totalMinutes35}");21    }
    outputpriority=Medium
    total=35
  1. BaseMinutes ← 30, priority ← Low, extraMinutes ← 5, totalMinutes ← 35

    11{12    static void Main()13    {14        const int BaseMinutes→ 30 = 30;15        Priority priority→ Low = Priority.Low;16        int extraMinutes→ 5 = priorityLow == Priority.High ? 15 : 5;17        int totalMinutes→ 35 = BaseMinutes + extraMinutes5;1819        Console.WriteLine($"priority={priorityLow}");20        Console.WriteLine($"total={totalMinutes35}");21    }
    outputpriority=Low
    total=35
  1. BaseMinutes ← 30, priority ← High, extraMinutes ← 15, totalMinutes ← 45

    11{12    static void Main()13    {14        const int BaseMinutes→ 30 = 30;15        Priority priority→ High = Priority.High;16        int extraMinutes→ 15 = priorityHigh == Priority.High ? 15 : 5;17        int totalMinutes→ 45 = BaseMinutes + extraMinutes15;1819        Console.WriteLine($"priority={priorityHigh}");20        Console.WriteLine($"total={totalMinutes45}");21    }
    outputpriority=High
    total=45

Follow the Choice

  1. BaseMinutes is 30.
  2. priority starts as Medium.
  3. Extra minutes are 15 only for High.
  4. Medium uses extra 5, so the total is 35.
  5. The program prints priority=Medium and total=35. | priority | base minutes | extra minutes | total | | --- | --- | --- | --- | | Low | 30 | 5 | 35 | | Medium | 30 | 5 | 35 | | High | 30 | 15 | 45 |

Exercise: ConstantsEnums.cs

Reproduce total=35 for Medium, then use priorities Low and High to predict each total.