c# switch expression in .NET framework code example

Example 1: switch c#

//This is the supreme way to make a console app with a switch.


using System;

namespace Example
{
    class Program
    {
        static void Main(string[] args)
        {
          	//Greats the user.
          	Console.WriteLine("Hello!");
            Console.WriteLine();
          	
          	//An infinite loop for continues command reading.
            while (true)
            {
              	//Asks for input on a line starting with >>.
                Console.Write(">> ");
                input = Console.ReadLine();
              	
              	//Checks if the user wants to exit.
                if (input == "Close") break;
              
              	//Gets the first word of the line and puts it in command.
                var command = input.Split(' ')[0];
              
              	//sets up a switch for all the possible commands
                switch (command)
                {
                    case "log":
                    	//This is entered if log is submited into the Console.
                       	Console.WriteLine("Not implemented");
                        break;
                    case "":
                        //Leaves the user alone. This is needed because otherwise it would
                    	//cosnider "" as the defualt and print Unknown command.
                        break;
                    default:
                        Console.WriteLine("Unknown command.");
                        Console.WriteLine();
                        break;
                }
            }
        }
    }
}

Example 2: c# 8 switch

public static RGBColor FromRainbow(Rainbow colorBand) =>
    colorBand switch
    {
        Rainbow.Red    => new RGBColor(0xFF, 0x00, 0x00),
        Rainbow.Orange => new RGBColor(0xFF, 0x7F, 0x00),
        Rainbow.Yellow => new RGBColor(0xFF, 0xFF, 0x00),
        Rainbow.Green  => new RGBColor(0x00, 0xFF, 0x00),
        Rainbow.Blue   => new RGBColor(0x00, 0x00, 0xFF),
        Rainbow.Indigo => new RGBColor(0x4B, 0x00, 0x82),
        Rainbow.Violet => new RGBColor(0x94, 0x00, 0xD3),
        _              => throw new ArgumentException(message: "invalid enum value", paramName: nameof(colorBand)),
    };

public enum Rainbow
{
    Red,
    Orange,
    Yellow,
    Green,
    Blue,
    Indigo,
    Violet
}