포스트

C# Switch

C# Switch

머리말


구현


Switch Statement

1
2
3
4
5
6
7
8
9
10
11
12
13
int number = 2;
switch (number)
{
    case 1:
        Console.WriteLine("Number is 1");
        break;
    case 2:
        Console.WriteLine("Number is 2");
        break;
    default:
        Console.WriteLine("Number is not 1 or 2");
        break;
}

Switch PatternMatching

1
2
3
4
5
6
7
8
9
10
11
12
13
14
object obj = 1;

switch (obj)
{
    case int i when i > 0 or i < 10:
        Console.WriteLine($"Integer: {i}");
        break;
    case string s:
        Console.WriteLine($"String: {s}");
        break;
    default:
        Console.WriteLine("Unknown type");
        break;
}

Switch Expression

1
2
3
4
5
6
7
8
int number = 5;
int result = number switch
{
    1 => 10,
    2 => 20,
    _ when number > 0 => 30,
    _ => 0
};

활용

1
2
3
4
5
6
7
8
9
int x = 1;
int y = 2;
int z = 3;
int result = (x, y) switch
{
    (1, 2) => 10,
    (2, 3) => 20,
    _ => 0
};
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
var obj = new { Name = "Kururu", Age = 20 };
switch (obj)
{
    case { Name: "Kururu", Age: 20 }:
        Console.WriteLine("Matched Kururu, 20");
        break;
    case { Name: "Kururu" }:
        Console.WriteLine("Matched Kururu");
        break;
    default:
        Console.WriteLine("No match");
        break;
}

var result = obj switch
{
    { Name: "Kururu", Age: 20 } => "Matched Kururu, 20",
    { Name: "Kururu", Age: > 20 } => "Matched Kururu, Age > 20",
    { Name: "Kururu" } => "Matched Kururu",
    _ => "No match",
};
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.