Enums help us name a set of related values. Using a switch pattern with enums lets us choose actions based on these named values clearly and simply.
When you have a fixed set of options like days of the week or colors.
When you want to run different code depending on a specific named value.
When you want your code to be easy to read and understand choices.
When you want to avoid many if-else statements for clear decision making.
Syntax
C Sharp (C#)
enum EnumName
{
Value1,
Value2,
Value3
}
switch (enumVariable)
{
case EnumName.Value1:
// action for Value1break;
case EnumName.Value2:
// action for Value2break;
default:
// action for other valuesbreak;
}
Use enum to define named constants.
The switch statement checks the enum value and runs matching code.
Examples
This example prints a message based on the day.
C Sharp (C#)
enum Day
{
Monday,
Tuesday,
Wednesday
}
Day today = Day.Monday;
switch (today)
{
case Day.Monday:
Console.WriteLine("Start of the week");
break;
case Day.Tuesday:
Console.WriteLine("Second day");
break;
default:
Console.WriteLine("Another day");
break;
}
This example shows how to handle all enum values without a default case.
C Sharp (C#)
enum Color { Red, Green, Blue }
Color favorite = Color.Green;
switch (favorite)
{
case Color.Red:
Console.WriteLine("You like red.");
break;
case Color.Green:
Console.WriteLine("You like green.");
break;
case Color.Blue:
Console.WriteLine("You like blue.");
break;
}
Sample Program
This program uses an enum for traffic lights and prints what to do for each color using a switch statement.
C Sharp (C#)
using System;
enum TrafficLight
{
Red,
Yellow,
Green
}
class Program
{
staticvoid Main()
{
TrafficLight light = TrafficLight.Yellow;
switch (light)
{
case TrafficLight.Red:
Console.WriteLine("Stop");
break;
case TrafficLight.Yellow:
Console.WriteLine("Get ready");
break;
case TrafficLight.Green:
Console.WriteLine("Go");
break;
default:
Console.WriteLine("Unknown signal");
break;
}
}
}
OutputSuccess
Important Notes
Always include a default case to handle unexpected values.
Enums make your code easier to read than using numbers or strings.
Switch statements with enums are faster and clearer than many if-else checks.
Summary
Enums give names to fixed sets of values.
Switch statements let you run code based on enum values clearly.
This combination makes your code easier to read and maintain.
Practice
(1/5)
1. What is the main purpose of using an enum in C#?
easy
A. To give meaningful names to a set of related constant values
B. To create a new class with methods
C. To store multiple unrelated variables
D. To define a method that returns multiple values
Solution
Step 1: Understand what enums represent
Enums are used to name a fixed set of related constants, like days of the week or colors.
Step 2: Compare options with enum purpose
Only To give meaningful names to a set of related constant values correctly describes enums as naming related constant values.
Final Answer:
To give meaningful names to a set of related constant values -> Option A
Quick Check:
Enum = Named constants [OK]
Hint: Enums name fixed sets of values clearly [OK]
Common Mistakes:
Thinking enums create classes
Confusing enums with variables
Assuming enums store unrelated data
2. Which of the following is the correct syntax to declare an enum named Day with values Monday, Tuesday, and Wednesday?
easy
A. enum Day (Monday, Tuesday, Wednesday);
B. enum Day { Monday, Tuesday, Wednesday }
C. enum Day: Monday, Tuesday, Wednesday;
D. enum Day = { Monday, Tuesday, Wednesday };
Solution
Step 1: Recall enum declaration syntax
In C#, enums are declared with the keyword enum, name, and curly braces listing values separated by commas.
Step 2: Match syntax to options
enum Day { Monday, Tuesday, Wednesday } matches the correct syntax: enum Day { Monday, Tuesday, Wednesday }.
Final Answer:
enum Day { Monday, Tuesday, Wednesday } -> Option B
Quick Check:
Enum syntax uses braces and commas [OK]
Hint: Use braces and commas to list enum values [OK]
Common Mistakes:
Using equals sign (=) after enum name
Using colons or parentheses incorrectly
Missing commas between values
3. Given the enum and switch code below, what will be printed?
enum Color { Red, Green, Blue }
Color c = Color.Green;
switch (c)
{
case Color.Red:
Console.WriteLine("Stop");
break;
case Color.Green:
Console.WriteLine("Go");
break;
case Color.Blue:
Console.WriteLine("Wait");
break;
}
medium
A. Go
B. Stop
C. Wait
D. No output
Solution
Step 1: Identify the enum value assigned
The variable c is assigned Color.Green.
Step 2: Follow switch cases for Color.Green
The switch matches Color.Green and prints "Go".
Final Answer:
Go -> Option A
Quick Check:
Switch on enum Green prints "Go" [OK]
Hint: Match enum value to switch case output [OK]
Common Mistakes:
Confusing enum values with strings
Missing break causing fall-through
Assuming default case runs without match
4. What is wrong with the following code snippet?
enum Status { Pending, Approved, Rejected }
Status s = Status.Approved;
switch (s)
{
case Status.Pending:
Console.WriteLine("Waiting");
case Status.Approved:
Console.WriteLine("Accepted");
break;
case Status.Rejected:
Console.WriteLine("Denied");
break;
}
medium
A. Variable s is not assigned a value
B. Enum values are not declared correctly
C. Switch statement syntax is invalid
D. Missing break after case Status.Pending causes fall-through
Solution
Step 1: Check switch cases for breaks
The case Status.Pending lacks a break;, so execution falls through to the next case.
Step 2: Understand fall-through effect
If s was Status.Pending, it would print both "Waiting" and "Accepted" unintentionally.
Final Answer:
Missing break after case Status.Pending causes fall-through -> Option D
Quick Check:
Each switch case needs a break [OK]
Hint: Always add break after each switch case [OK]
Common Mistakes:
Forgetting break causes multiple case runs
Assuming enum declaration is wrong
Thinking variable is uninitialized
5. You want to write a method that takes an enum Season with values Spring, Summer, Fall, Winter and returns a string describing the typical weather. Which switch expression correctly returns "Warm" for Summer and Spring, "Cool" for Fall, and "Cold" for Winter?
hard
A. return season switch {
Season.Spring, Season.Summer => "Warm",
Season.Fall => "Cold",
Season.Winter => "Cool"
};
B. switch (season) {
case Season.Spring:
case Season.Summer:
return "Warm";
case Season.Fall:
return "Cool";
case Season.Winter:
return "Cold";
default:
return "Unknown";
}
D. switch (season) {
case Season.Spring:
return "Warm";
case Season.Summer:
return "Cool";
case Season.Fall:
return "Cold";
case Season.Winter:
return "Cold";
}
Solution
Step 1: Check switch expression syntax
return season switch {
Season.Spring => "Warm",
Season.Summer => "Warm",
Season.Fall => "Cool",
Season.Winter => "Cold",
_ => "Unknown"
}; uses the modern C# switch expression with correct syntax and covers all enum values with correct returns.
Step 2: Verify correct mapping of seasons to weather
Spring and Summer return "Warm", Fall returns "Cool", Winter returns "Cold", and a default case handles unknowns.