[英]C# 4.0 and .Net 3.5
所以我們終於在一些開發人員站上安裝了 VS2010,並且可以使用 C# 4.0 功能。 盡管我們開發的大部分內容暫時仍要針對.Net 3.5。
當我開始一個新項目並將目標設置為.Net 3.5時,它仍然允許我使用C# 4.0等動態。 因此,您能否在針對 .net 3.5 的同時使用 C#4.0 功能,這些功能是否可以在 .Net 4.0 不可用的環境中工作?
謝謝。
如果您以 .NET 3.5 框架為目標,則dynamic
代碼將無法編譯。
更清楚地說,編譯器將允許您定義和分配dynamic
變量,例如:
dynamic x = 3;
那一行代碼將編譯,因為就類型而言, dynamic
只是編譯為object
。 但是,如果您隨后嘗試對該變量執行任何操作,例如:
Console.WriteLine(x);
...然后編譯器將不得不生成代碼來發現/強制它無法做到的真實類型; 你會得到以下編譯錯誤:
- 未定義或導入預定義類型“Microsoft.CSharp.RuntimeBinder.Binder”
- 找不到編譯動態表達式所需的一種或多種類型。 您是否缺少對 Microsoft.CSharp.dll 和 System.Core.dll 的引用?
C# 4 編譯器依賴於 DLR,特別是 Microsoft.CSharp 程序集,用於與dynamic
相關的所有內容。 這些在 .NET 3.5 中不可用。 所以答案是否定的,在針對 Framework 3.5 版時,您不能使用dynamic
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.