2009-09-16 2 views
3

LINQ 표현식 트리에서 수행 할 수있는 최대 값은 무엇입니까?최대 LINQ 표현식 트리는 무엇을 할 수 있습니까?

클래스를 정의 할 수 있습니까? 선언 된 이름, 수정 자, 매개 변수 유형 및 반환 유형이 모두있는 메소드는 어떻습니까?

프로그램에서 항상 트리를 정의해야합니까? 주어진 C# 파일에서 트리를 생성 할 수 있습니까?

기본 고급 표현식 트리 및 표현식 트리 방문자 작성에 대해 배울 수있는 자료는 어디에서 얻을 수 있습니까? 표현 나무 표현을 나타낼 수, 도울 수있는 사람들을위한

감사합니다 ... C# 3에서

답변

15

(기사 및 동영상 좋을 것이다). 그러므로 이름. 또한 C# 표현식의 하위 집합으로 제한됩니다. 할당 표현식이나 포인터 유형과 관련된 표현식이 없습니다.

C# 4와 함께 제공 될 라이브러리에서 라이브러리 표현 트리를 확장하여 명령문 트리도 지원합니다. 그러나 C# 4에서는 명령문 - 람다를 "명령문 트리"로 자동 변환하지 않습니다.

이것은 C# 4에 도달 할 시간이 없었던 명백하고 유용한 기능입니다. 우리는 가상의 이후 버전에 대해 고려할 것입니다. 성명서 트리에 대한 사용자 시나리오가 정말 좋으면 그 이야기를 듣고 싶습니다.

클래스 선언, 구조체 선언 등을 나타내는 선언 트리가 추가로 확장되었습니다. 전체 homoiconicity 사이의 C# 언어와 표현 트리 라이브러리 사이에 멋진 것입니다. 모든 종류의 흥미로운 메타 프로그래밍 시나리오를 가능하게합니다. 그러나 그것은 곧 나올 것이므로 희망을 얻지 마십시오. 그것은 결코 일어날 수없는 장기적인 내 꿈일뿐입니다.

+0

답장 보내 주셔서 감사합니다. 이것은 Expression 라이브러리입니다. http://msdn.microsoft.com/en-us/library/system.linq.expressions(VS.100).aspx. 하지만 거기에 MemberAssignment가 보입니다. 할당 표현이 아닙니다. 그리고이 MethodCallExpression은 메소드 호출 (호출 수신자/호출자/매개 변수)에서 정보를 추출 할 수 없습니까? – yeeen

+0

아니요, 이것이 MemberAssignment의 목적이 아닙니다. 두 번째 질문을 이해하지 못합니다. –

+0

그럼 MemberAssignment는 무엇입니까? 즉, 메소드 호출 (호출 수신자, 호출자, 매개 변수 유형)의 세부 사항을 추출 할 수 있습니까? 또는 Expression을 사용하여 메서드를 정의하고 다른 메서드를 호출 할 수 있습니까? – yeeen

1