Expression & lt; func & lt; t & gt; & gt; vs. func & lt; t & gt; : 발현 나무를 사용하는 시점
람다 표현, func 및 동작과 같은 대표단, 일반적으로 표현이있을 때 & lt; func & lt; t & gt가있을 수 있습니다. ; & gt; 질문을 제기합니다. 그 목적을 명확히하기 위해, 표현이 될 때를 고려하십시오. & lt; t & gt; & gt; 표현 나무가 재생 될 때 표준 func & lt; t & gt;. Lambda 표현을 발현 나무로 처리 할 때 특히 유용하여 실행없이 조성물을 검사하는 방법을 제공합니다. 대표적인 예는 LINQ에서 SQL 프레임 워크로 표현식을 동등한 SQL 문으로 변환하고 실행을 위해 데이터베이스로 보냅니다.
표현식 트리와 기능 대의원 간의 개념적 차이표현의 고유 한 차이를 이해하는 것이 중요합니다. & lt; t & gt; & gt; 그리고 func & lt; t & gt;. func & lt; t & gt; 방법, 표현 및 func & lt; t & gt; & gt; 람다 표현을 설명하는 트리 구조를 나타냅니다. 이 트리는 실제로 코드를 실행하지 않고 변수, 메소드 호출 및 상수를 포함하여 람다의 구성에 대한 정보를 전달합니다. 🎜> 다음 예제를 고려하십시오.
myfunc은 매개 변수를 사용하지 않고 값을 반환하는 IL 메소드로 컴파일됩니다. 대조적으로 :MyExpression은 표현식 트리를 나타내는 데이터 구조로 번역됩니다. [Expression Tree Descriptor의 이미지]
유사한 구문에도 불구하고,이 두 표현식에 대한 컴파일러에 의해 생성 된 출력은 크게 다릅니다. 발현 나무는 컴파일 타임에 람다 표현을 분석하고 변형시키는 방법을 제공하는 반면, Func Delegates는 그것들을 실행합니다.
.위 내용은 표현 대 기능 : 언제 표현 나무를 사용해야합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!