【问题标题】:C# language versions and CLRC# 语言版本和 CLR
【发布时间】:2016-02-17 20:28:36
【问题描述】:

我一直在阅读有关 C# 版本的各种文章和问题(包括 Jon Skeet 在 SO 上的回答)。但是,我无法理解一个简单的(我希望的)事情。 CLR、.NET 和 C# 版本是如何关联的?例如,是否可以使用支持 C# 6 的 C# 编译器并在 CLR 1 下运行生成的 IL 代码?例如,当添加了对 async/await 的支持时,CLR 是否必须更改,或者仅仅因为 async/await 编译成普通 IL 而不需要它?我非常熟悉 .NET 基础知识,但是,我不明白每个版本对 C# 进行了哪些更改。对 async/await、lambdas 和其他东西的支持到底是如何添加到语言中的?他们是否需要对 .NET 框架或 CLR 进行更改?

This answer 说 C# 4 要求 CLR 4。要求是什么意思?据我了解,某些功能在较低的 CLR 版本下仍然可以使用。

【问题讨论】:

  • This 答案是一个很好的起点。
  • 我不是说过我确实看过这个答案并且知道相应的版本吗?

标签: c# .net compilation clr


【解决方案1】:

如果您针对 CLR 版本 X 进行编译,则只能在该版本上运行您的代码。

为了向后兼容,每个 CLR 版本都将较旧的 CLR 引入您的计算机。因此,如果您安装 CLR 4,它也会安装 CLR 2 和 CLR 1。

因此,您可以在安装了 CLR 4 的计算机上运行针对 CLR 1 编译的代码。但反之则不然。

【讨论】:

  • 它并没有真正回答我想知道的;我想我为这个问题选择了一个糟糕的措辞。
猜你喜欢
  • 2014-05-13
  • 1970-01-01
  • 2020-07-08
  • 2013-06-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-07-29
  • 2011-05-20
相关资源
最近更新 更多