【发布时间】: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