2014-11-27 5 views
0

lambda를 사용하여 한 줄에 멋진 if 문을 작성하는 방법은 무엇입니까?람다를 사용하여 if 문을 기반으로 작업 수행

일부 '한 줄'은 모두 같은 일을 달성 람다를 사용하지 않고 변형
+0

확실한 질문 시간 : 이유는 무엇입니까? 궁금한 점이 있으시면 – DavidG

+0

에 플러스 부호를 추가하십시오. – inside

+0

질문을 따르십시오 : 왜 람다, 여기에 전혀 필요가 없습니까? – DavidG

답변

2

그것은 정말

는이 같은 뭔가를 할 어리 석고 너는 그렇게해서는 안된다!하지만 가르치는 목적을 위해 여기에 원하는 코드가 있습니다. 그들은 상황에 따라 입력되어있다 - 당신은 람다 표현식은 기본적으로 유형이없는이기 때문에, (여기가 Action의) 일부 대리자 형식에 람다 캐스팅 할 필요가

  1. (this.SomeBoolValue == false 
        ? (Action)(() => MessageBox.Show("False!")) 
        : (Action)(() => MessageBox.Show("True!")))(); 
    

    .

  2. 람다를 실제로 호출해야합니다. 그 이유는 마지막에 ()입니다.

+0

Dunno 왜 누군가가 downvoting하는지, 이것이 정확합니다. 어쨌든, 나는 +1을 주겠다. – DavidG

0

this.SomeBoolValue == false ? (() => MessageBox.Show("False!")) : (() => MessageBox.Show("True!")); 

감사 :

if(this.SomeBoolValue == false) MessageBox.Show("False!"); else MessageBox.Show("True!"); 

MessageBox.Show(this.SomeBoolValue ? "True!" : "False!"); 

MessageBox.Show(string.Format("{0}!", this.SomeBoolValue)); 
관련 문제