2012-04-04 2 views
65

나는 여러 번 들었던 표정 나무의 개념을 보았습니다. 표현 트리와 그 목적이 의미하는 바를 이해하고 싶습니다.표현식 트리 란 무엇입니까? 어떻게 사용합니까? 왜 사용합니까?

누군가가 나를 간단한 설명과 사용 예제로 안내 할 수 있다면 나는 그것을 좋아할 것이다.

+1

가능한 중복 [왜 당신이 표현 을 사용합니다> 오히려 Func을 ? 이상 (http://stackoverflow.com/questions/793571/why-would-you-use-expressionfunct- 오히려 - funct) – nawfal

+0

몇 가지 예제와 함께 응답 .. /http : //stackoverflow.com/questions/403088/practical-use-of-expression-trees/20470060#20470060 – Moumit

답변

63

표현식 트리는 기본적으로 코드 인 표현식을 포함하는 데이터 구조입니다. 따라서 코드에서 계산할 수있는 트리 구조입니다. 이러한 코드 조각은 데이터 세트를 통해 표현식 트리를 "실행"함으로써 실행될 수 있습니다.

표현 트리에 대한 좋은 점은 코드로 작성할 수 있다는 것입니다. 즉 코드에 실행 코드 (또는 일련의 단계) 을 빌드합니다. 다른 표현식으로 표현식을 대체하여 코드를 실행하기 전에 코드를 수정할 수도 있습니다.

식은 (int x => return x * x)과 같은 함수 대리자입니다.

는 참조 http://blogs.msdn.com/b/charlie/archive/2008/01/31/expression-tree-basics.aspx

+3

이것은 사실이 아닙니다. 링크 된 기사에서 지적한 바와 같이, 표현 트리는 주로 다른 곳에서 실행하기 위해 전선을 통해 전송 될 계산을 나타내는 데 사용됩니다. 이러한 이유로 그들은 코드를 포함하지 않습니다. 대신 코드 대신 사용됩니다. –

+1

표현식 트리는 로컬 또는 원격으로 수행하려는 모든 계산에 사용될 수 있습니다. 형식화 된 표현식을 표현식 트리로 변환하는 파서를 쉽게 작성할 수 있습니다. 또한 Expression Trees에 코드가 포함되어 있다고 말한 적이 없습니다. –

+1

"코드 조각이있는 트리 구조"가 "코드 포함"을 의미하지 않는다면 답을 편집하여 명확하게 작성해야합니다. 표현식에 일리노이 코드가 전혀 포함되어 있지 않고 실행 가능한 것으로 변환되는 것에 의존해야한다는 것을 분명히해야합니다. –

관련 문제