티스토리 뷰
목차
반응형
C# Lambda 예제, if else 람다 축약 방법 (Action 델리게이트)
아래와 같은 if else 문을 축약하려 합니다.
1 2 3 4 5 6 7 8 9 10 11 | bool validName = true; if (validName) { name = "Daniel"; surname = "Smith"; } else { MessageBox.Show("Invalid name"); } | cs |
c# action 사용법, 람다 응용
bool 변수에 물음표 연산자를 응용하여 처리할 수 있을까요?
1 2 3 4 5 6 7 8 9 | validName ? { name = "Daniel"; surname = "Smith"; } : { MessageBox.Show("Invalid name"); } | cs |
위 처럼 구성할 수 있으나, 원래 의도인 축약(Short hand)을 만족하진 못합니다.
그래서 Action 델리게이트 이용해 if else 문법을 람다 형식으로 축약할 수 있습니다.
1 2 3 4 5 6 | var a1 = new Action(() => { /* if code block */ }); var a2 = new Action(() => { /* else code block */ }); Action resultingAction = test_variable ? a1 : a2; resultingAction(); | cs |
미리 선언된 a1, a2를 이용해 삼항연산자를 resultingAction에 대입합니다. 마지막에 델리게이트를 구동합니다.
이렇게 간단히 축약할 수 있네요.
C# Lambda 예제, if else 람다 축약 방법 (Action 델리게이트)
반응형