operator in c#

operator in c#



C# Switch Expression Examples

In modern C#, the switch statement has evolved significantly with the introduction of switch expressions, enhancing code readability and efficiency. This article explores various facets of using switch statements and expressions, providing a deep dive into their syntax and practical applications.

C# Switch Expression Multiple Cases

Switch expressions introduced in C# 8.0 allow for multiple cases to be handled in a single line, simplifying the syntax and improving readability. For example:

 

var number = 3;
var result = number switch {
    1 or 2 => "One or Two",
    3 or 4 => "Three or Four",
    _ => "Other"
};

C# Switch Statement

The traditional switch statement in C# executes different blocks of code based on the value of a variable. It's structured to handle complex logic by providing a case and break for each potential match:

 

var day = 4;
switch (day) {
    case 1:
        Console.WriteLine("Monday");
        break;
    case 2:
        Console.WriteLine("Tuesday");
        break;
    default:
        Console.WriteLine("Another day");
        break;
}

C# Switch Expression vs Statement

While switch statements perform actions, switch expressions return values based on a match. Expressions are more concise and can be used directly in an expression context:

 

var status = 200;
var message = status switch {
    200 => "Success",
    404 => "Not Found",
    _ => "Unknown"
};

C# Switch Expression Fall Through

Unlike switch statements, switch expressions do not support fall through, meaning each case must handle its outcome completely, thus eliminating accidental execution of multiple cases:

 

// This is not possible in switch expressions and will throw a compile-time error.

C# Switch on Type

Switch expressions can elegantly handle type patterns, allowing actions based on the type of an object without explicit type checks or casting:

 

object obj = 42;
var typeInfo = obj switch {
    int i when i > 0 => "Positive integer",
    string s => "String value",
    _ => "Unknown type"
};

C# Switch Lambda

Lambdas can be used within switch expressions to execute more complex operations inline. This is particularly useful when each case requires more than a simple return:

 

var response = 200;
var action = response switch {
    200 => () => Console.WriteLine("OK"),
    404 => () => Console.WriteLine("Not Found"),
    _ => () => Console.WriteLine("Unknown Status")
};
action();

C# Switch Expression

Switch expressions are most beneficial for mapping from a value to a result directly, providing a clear and concise alternative to switch statements:

 

var color = "red";
var hex = color switch {
    "red" => "#FF0000",
    "green" => "#00FF00",
    "blue" => "#0000FF",
    _ => "#FFFFFF"
};

C# Switch Case Multiple Conditions

C# 9.0 and later support using tuples in switch expressions, allowing multiple conditions to be checked in a single case:

 

var state = "NY";
var city = "NYC";
var location = (state, city) switch {
    ("NY", "NYC") => "New York City",
    ("NY", _) => "Other part of New York",
    _ => "Outside New York"
};

C# Switch Statement String

Switch statements traditionally handle strings efficiently, allowing for straightforward text-based case checks:

 

var fruit = "apple";
switch (fruit) {
    case "apple":
        Console.WriteLine("Apple selected");
        break;
    case "banana":
        Console.WriteLine("Banana selected");
        break;
    default:
        Console.WriteLine("No fruit selected");
        break;
}

C# Switch New Syntax

The newer switch syntax further simplifies handling different scenarios using less verbose and more intuitive code, especially with the inclusion of pattern matching in C# 9.0 and later:

 

var tool = "hammer";
var use = tool switch {
    "hammer" => "Build something",
    "screwdriver" => "Tighten a screw",
    _ => "Unknown tool"
};

Switch expressions and statements in C# provide powerful tools for branching logic based on the value of variables. The evolution of these constructs in C# enhances code clarity and conciseness, making it easier to write and maintain.


Leave a reply Your email address will not be published. Required fields are marked*

Popular Posts

c# init required

5 months ago
c# init required

XML Documentation in c#

5 months ago
XML Documentation in c#

c# sortedset vs sortedlist

4 months ago
c# sortedset vs sortedlist

c# xdocument get element by name

4 months ago
c# xdocument get element by name

Tags