C-Sharp | Java | Python | Swift | GO | WPF | Ruby | Scala | F# | JavaScript | SQL | PHP | Angular | HTML
Example: This code demonstrates the case keyword used in different ways. A string switch statement is shown.
String SwitchCases: The first 3 cases are stacked on top of each other. This syntax can match multiple cases to a single executable code block.
Note: At the end of each case statement block, you must have a break, return or goto jump statement for the program to compile.
BreakReturnGotoDefault: The default case does not use the "case" keyword. It is the case that is matched when no other cases do.
C# program that uses case statements in switch
using System;
class Program
{
    static string TestCase(string value)
    {
        const string _special = "constant";
        // Begin the switch.
        switch (value)
        {
            case "100":
            case "1000":
            case "10000":
                {
                    // You can use the parentheses in a case body.
                    return "Multiple of ten";
                }
            case "500":
            case "5000":
            case "50000":
                // You can omit the parentheses and stack the cases.
                return "Multiple of fifty";
            case _special:
                // You can use a constant identifier in the case.
                return "*";
            default:
                // You can use the default case.
                return "Invalid";
        }
    }
    static void Main()
    {
        // Test the method.
        Console.WriteLine(TestCase("100"));
        Console.WriteLine(TestCase("1000"));
        Console.WriteLine(TestCase("5000"));
        Console.WriteLine(TestCase("constant"));
        Console.WriteLine(TestCase(null));
    }
}
Output
Multiple of ten
Multiple of ten
Multiple of fifty
*
Invalid
So: We cannot use string.Empty in a case statement. Other fields in a class also cannot be cases.
Error: The C# compiler will report the error to us before the program is ever run. This is helpful.
C# program that shows constant error
class Program
{
    static void Main(string[] args)
    {
        switch (args[0])
        {
            case string.Empty:
                break;
        }
    }
}
Output
Error CS0150
A constant value is expected
And: There is no difference in the compiled program if you omit the parentheses.
Also: The switch statement also shows how to use a constant field or local constant in the case statements.
Compiler: The C# compiler will internally treat this constant the same way as explicitly specified constants in other cases.
constBut: You can still stack together multiple cases. This limitation was added to the language to reduce programming mistakes.