.NET 2.0 프레임 워크를 대상으로하는 응용 프로그램에서 사용할 수있는 C# 3.0 언어 기능은 무엇입니까?.Net 2.0의 C# 3.0 호환성
PS : 내가 아는 람다 식을 var
키워드
.NET 2.0 프레임 워크를 대상으로하는 응용 프로그램에서 사용할 수있는 C# 3.0 언어 기능은 무엇입니까?.Net 2.0의 C# 3.0 호환성
PS : 내가 아는 람다 식을 var
키워드
여기를 참조하십시오
Using C# 3.0 (.Net 3.5) syntax in a .Net 2.0 application
을 .NET 2.0 프레임 워크를 대상으로하고 C# 3.0을 사용할 때 당신이 할 수있는 일과 할 수없는 일의 아래로 전체 실행하십시오. 요약
:
확장 방법은 정렬의 작업을하지만, 그들은 작동하기 위해 "System.Runtime.CompilerServices.ExtensionAttribute"을 요구하고,이 유형은 엄격 일부가 아닌 어떤합니다 (System.Core DLL 내에서 발견된다 .NET 2.0 프레임 워크).
쿼리 구문은 말 그대로 "사용할 수"있지만 타사 DLL (예 : LINQBridge)이 사용되는 경우 사용할 수 있습니다. 이 DLL은 .NET 2.0 프레임 워크를 대상으로 할 때 LINQ를 수행하는 데 필요한 "누락 된"형식을 효과적으로 다시 구현합니다. 또한 Extension 메서드가 작동하는 데 필요한 "ExtensionAttribute"유형을 구현하므로 프로젝트에서 LINQBridge DLL을 추가/참조하면 LINQ, 쿼리 구문/표현식 및 확장 메서드를 사용할 수 있습니다!
같은 몇 나는 article on this very topic 있습니다. 요컨대
: 지원
:
가 부분적으로 지원 :
(LINQBridge 같은 유용 할 필요) :
실제로 표현 트리 으로의 변환은 System.Core
의 Mono 구현을 통해 사용 가능한이라고 들었습니다. 나는 아직 그것을 시도하지 않았다 ... 나는 그렇게하는 의미를 지킨다 (그리고 그 다음 페이지를 업데이트한다).
예, 적합한 표현식 클래스가있는 한 표현식 트리 항목이 정상적으로 작동한다고 의심됩니다. 물론, 그 클래스의 정확한 요구 사항은 스펙에 문서화되어 있지 않고, * 아무 것도 * 잘못 되었다면, 컴파일러는 매우 지저분한 방법으로 (당신이 예상하는 것보다 훨씬 더 못 생겨) 폭발합니다. 나는 그것의 작은 부분 (http://marcgravell.blogspot.com/2009/04/re-implementing-expression-for-compact.html)을 시도하는 것이 훨씬 재미 있었다. 모노 옵션은 정식 버전에 더 적합하다. –
+1, 감사합니다 Jon and Marc :) –
Jon이 나를 괴롭 혔습니다. 운명의 이상한 비꼬아, 내가 링크 한 블로그 게시물에 대한 첫 번째 코멘트는 Jon Skeet (!) – CraigTP
두 번째 "You can not"- 쿼리 구문을 사용할 수 있습니다. 간단히 말해서 그들은 ' LINQBridge와 같은 것을 사용하지 않는 한 현재 존재하지 않습니다. –
@Marc - 당신 말이 맞아요. 그 점을 지적 해 주셔서 감사합니다. 나는이 사실을 반영하기 위해 나의 대답을 편집했다. – CraigTP