The switch statement in C# is a control flow statement that allows you to execute different blocks of code based on the value of a variable or expression. It is a more efficient and readable alternative to using multiple if-else statements.
Basic Syntax
The basic syntax of a switch statement in C# is as follows:
switch (expression)
{
case value1:
// code to be executed if expression equals value1
break;
case value2:
// code to be executed if expression equals value2
break;
default:
// code to be executed if expression does not equal any of the above values
break;
}
How it Works
Here's a step-by-step explanation of how the switch statement works:
- The expression is evaluated and its value is determined.
- The value is compared to each case value in the switch block.
- If a match is found, the code associated with that case is executed.
- If no match is found, the code in the default case is executed (if present).
- The break statement is used to exit the switch block and continue executing code after the switch statement.
Example Use Case
Here's an example of using a switch statement to determine the day of the week based on a given day number:
using System;
class Program
{
static void Main()
{
Console.Write("Enter a day number (1-7): ");
int dayNumber = Convert.ToInt32(Console.ReadLine());
switch (dayNumber)
{
case 1:
Console.WriteLine("Monday");
break;
case 2:
Console.WriteLine("Tuesday");
break;
case 3:
Console.WriteLine("Wednesday");
break;
case 4:
Console.WriteLine("Thursday");
break;
case 5:
Console.WriteLine("Friday");
break;
case 6:
Console.WriteLine("Saturday");
break;
case 7:
Console.WriteLine("Sunday");
break;
default:
Console.WriteLine("Invalid day number");
break;
}
}
}
Pattern Matching in Switch Statements
C# 7.0 and later versions support pattern matching in switch statements. This allows you to use more complex patterns to match values, such as types, constants, and even tuples.
Here's an example of using pattern matching to determine the type of an object:
using System;
class Program
{
static void Main()
{
object obj = "Hello";
switch (obj)
{
case string s:
Console.WriteLine($"The object is a string: {s}");
break;
case int i:
Console.WriteLine($"The object is an integer: {i}");
break;
default:
Console.WriteLine("The object is of an unknown type");
break;
}
}
}
Best Practices
Here are some best practices to keep in mind when using switch statements:
- Use switch statements when you have a fixed set of possible values to match.
- Avoid using switch statements with large numbers of cases, as this can make the code harder to read and maintain.
- Use pattern matching to simplify complex matching logic.
- Always include a default case to handle unexpected values.
Comments
Post a Comment