回答
請看這裏:
Using C# 3.0 (.Net 3.5) syntax in a .Net 2.0 application
對於一個完整的運行,你可以針對.NET 2.0框架和使用C#3.0的時候,不能做什麼了。
總結:
- 您無法使用新的3.5組件(將System.Data.Linq,System.Xml.Linq的,System.Core程序)。
- 您不能使用Linq/Query Extensions或Extension Methods(但是,請參閱下面的方法來啓用使用Linq /查詢語法和擴展方法!)。
- 您可以使用Var keyword,Lambda statements,Object Initializers,Anonymous Types & Auto-Implemented Properties。
擴展方法排序的工作,但是,他們需要「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。
簡言之:
支持:
- 自動實現的屬性,隱式類型的局部變量和數組,對象和集合初始化,匿名類型,部分的方法,轉化成委託類型lambda表達式。
部分支持:
- 擴展方法(需要一個屬性)和查詢表達式(需要像LINQBridge是有用的)
不支持:
- Lambda表達式轉換成表達樹
實際上,我聽說轉換成表達式樹是可以藉助Mono的System.Core
實現。儘管我還沒有嘗試過......我保持這樣做的意義(然後更新頁面)。
是的,我懷疑只要有合適的Expression類,表達式樹的東西就可以正常工作。當然,這個類的確切需求沒有在規範中記錄,如果* anything *錯了,編譯器會以非常混亂的方式爆發(比你期望的要糟糕得多)。我嘗試了一小部分樂趣很有趣(http://marcgravell.blogspot.com/2009/04/re-implementing-expression-for-compact.html) - 單聲道選項對於完整版本更有意義。 – 2009-09-10 10:51:34
+1,感謝喬恩和馬克:) – 2009-09-10 12:04:50
- 1. C#3.0代碼與.NET 4.0的兼容性如何與C#3.0代碼兼容
- 2. C#正則表達式兼容性問題(.NET 3.5與.Net 2.0)
- 3. WSE 3.0 Windows 7兼容性
- 4. 2.2.1與3.0的兼容性
- 5. 關於C++和.NET兼容性的C#
- 6. CastleProject單軌2.0與.NET 2.0兼容?
- 7. Neo4j 3.0 Mazerunner兼容性
- 8. Android兼容性包3.0
- 9. .NET Framework 4.6.2和.NET Standard 2.0不兼容
- 10. ASP.NET MVC 3.0 + Microsoft.Web.Mvc 3.0 + MEF兼容性
- 11. Neo4j 2.0和Java兼容性
- 12. .NET 2.0中的FIPS兼容加密
- 13. ASP.NET 2.0的Resharper兼容性問題
- 14. .NET與MySql.Data的兼容性
- 15. C#的向後兼容性
- 16. IMAP庫兼容2.0
- 17. .Net 2.0/3.5和4.0之間的向後兼容性
- 18. Compact Framework 2.0與.Net Framework 4.0的兼容性
- 19. Windows Azure與.NET 2.0框架兼容嗎?
- 20. commons-net與ssh-2.0協議兼容
- 21. Windows RT .NET兼容性
- 22. .net 4向後兼容性
- 23. .net框架兼容性
- 24. .NET Framework兼容性問題
- 25. 列表 - .NET兼容性?
- 26. .NET兼容性限制
- 27. C#4和CLR兼容性
- 28. 在.NET 1.1和2.0上運行的Log4net 1.2.10不兼容
- 29. Twitter Bootstrap和jQuery 2.0的兼容性
- 30. Jasmine 2.0與Jasmine-jquery的兼容性
喬恩擊敗了我。在命運的一個奇怪的轉折中,我已經鏈接到的博客文章的第一條評論是來自Jon Skeet(!) – CraigTP 2009-09-10 10:48:49
重複第二個「你不能」 - 你可以使用查詢語法 - 只是他們不是「除非你使用LINQBridge之類的東西。 – 2009-09-10 10:52:50
@Marc - 你是對的。感謝您指出了這一點。我編輯了我的答案以反映這一事實。 – CraigTP 2009-09-10 11:09:25