簡體   English   中英

C# 4.0 和.Net 3.5

[英]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);

...然后編譯器將不得不生成代碼來發現/強制它無法做到的真實類型; 你會得到以下編譯錯誤:

  1. 未定義或導入預定義類型“Microsoft.CSharp.RuntimeBinder.Binder”
  2. 找不到編譯動態表達式所需的一種或多種類型。 您是否缺少對 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM