2012-05-26 1 views
5

다음은 선형 함수 (y = ax + b)를 반환하는 코드입니다.Func <> 동적으로 만들기 - Lambda 대 표현식 트리

표현식 트리에서 동일한 작업을 수행 할 수는 있지만 노력할 가치가 있는지는 잘 모르겠습니다.

나는 람다가 매개 변수를 포착한다는 것을 알고있다. 그것은 단점이다. 내가 모르는 더 이상의 찬성/반대가 있습니까?

내 주요 질문은이 시나리오에서 표현식 트리를 사용하는 것이 가치가 있느냐는 것입니다. 그 이유는 무엇?

+0

얼마나 자주 결과 함수를 호출합니까? –

+0

어디서나 1에서 수백만까지. –

답변

5

컴파일 타임에 코드를 알고 있다면 거의 확실하게 람다 식을 사용할 것입니다. 매개 변수가 (상수로 표현되는 것이 아니라) 캡쳐된다는 사실은 거의 항상 관련성이 없습니다. 표현식 트리를 만들 때 정당화하기 위해서는 은 의미가 있다고 증명해야합니다.

  • 당신은 다른 비트 표현의에서 동적으로 구축하고자
  • 당신은 예를 들어, 데이터로 표현 트리를 분석하려는 : 때

    표현의 나무는 훨씬 더 적용 할 수 있습니다 LINQ 공급자로서

이러한 경우가 아니라면 람다 식을 사용하면 가독성이 뛰어납니다.