포스트

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 라이센스를 따릅니다.