Data Types
Constants and Enums
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
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}");
}
}
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
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
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
BaseMinutesis30.prioritystarts asMedium.- Extra minutes are
15only forHigh. Mediumuses extra5, so the total is35.- The program prints
priority=Mediumandtotal=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.