【发布时间】:2014-08-17 15:28:54
【问题描述】:
是否可以将 Roslyn 编译器和 C# 6.0 的新功能与旧版本的 .NET Runtime(例如 .NET 4.0)一起使用?
例如,我想在 .NET 4.0 应用程序中使用表达式主体成员(int S => x + y; 而不是 int S { get { return x + y; } })。
【问题讨论】:
-
你认为会是什么?
-
编译器如何将它不知道(因为它在创建时不存在)的方法编译到IL?
-
它的可能性相对较大,因为这可以完全通过编译器支持实现,并发出 4.0 CLR 可以运行的 IL。就像如果您使用 C# 3.0 编译器编译,您可以在面向 .Net 2.0 的项目中使用自动属性一样。 stackoverflow.com/questions/9393982/…
-
你试过了吗?主要构造函数为我工作以 .NET 3.5 为目标的项目。
-
@GeorgeStocker 什么会让你认为它不会?除非该功能需要 .NET 运行时中的更改(如 async/await)来支持,否则没有理由不应该在旧的 .NET 运行时上使用它。