반응형
메뉴, 버튼의 Click 이벤트를 처리할 때, 하나의 메서드로 통합하려면
이전에는 if~else if문을 엄청나게 써댔다.
if문에도 sender as ToolStrip~~ 식으로 바꾸고 == 비교하고...{ }중괄호 쓰고...
같은 역할을 하는 버튼인데도 같은 if문을 또 써야 하고...
switch 패턴 매칭으로 코드를 줄여보자.
private void menu_Click(object sender, EventArgs e)
{
switch (sender)
{
case { } x when x == menu_1번:
break;
case { } x when x == menu_2번:
case { } x2 when x2 == button_1번:
// 메뉴버튼과 툴바버튼 처럼 클래스가 달라도 묶어서 사용 가능
break;
case { } x when x == menu_3번:
break;
case var x when x == image_1:
// 그림을 왜 누르니
break;
}
}
sender as Type 필요 없음
x 변수는 쓰고 싶은대로...
break를 만나기 전까지 여러 case를 묶을 때는 변수명이 달라야 함.
{ }는 catch-all. 교과서대로 하려면 var를 사용한다.
반응형