C# 和 .NET 版本是否相互依赖?

Are C# and .NET versions dependent on each other?

我刚刚开始学习 C# 及其与 .NET 的关系。如果说我想利用最新的 C# 语言约定,但想以 .NET 2.0 框架为目标,我可以这样做吗?或者使用最新的 C# 是否意味着我必须使用最新的 .NET?

您可以使用最新 visual studio 版本(2013、2015)的功能,但代码必须符合 2.0 规范才能进行 .NET 2.0 编译(旧版本)

是的,C# 和 .Net 版本是相关的。根据我的理解,C# 是一种使用 .Net 技术的编程语言。

学习C#就是学习基本语法,所有.Net版本都差不多。因此,对于学习 c#,您必须针对哪个 .Net 版本并不重要。不同的 .Net 版本增加了某些新特性或功能。无论如何,最好了解最新的 .Net 版本,这将对您的项目有所帮助。

您可以将早期版本的 C# 功能与更高版本的 .Net 一起使用,例如,您可以将任何 C# 2.0 功能与 .Net 3.5 一起使用,反之则不行,因此您不能使用 .Net 3.5 功能与 c# 2.0 编译器。

有关详细信息,请参阅:https://msdn.microsoft.com/en-us/library/ff602939(v=vs.110).aspx

C# 作为一种语言不依赖于 .net 框架。

例如:扩展方法是随 .Net 2.0 一起发布的 C# 3.0 发布的功能。 扩展方法取决于 ExtensionAttribute which lives in "mscorlib.dll" which was added in .Net 3.5. But you can use Extension methods in .Net 2.0 given that you provide your own ExtensionAttribute in your library itself. It doesn't needs to be in mscorlib. Refer this question for more info.

据我们所知 is new in C# 5.0 which was released with .Net 4.5, but we can use async-await in .Net 4.0 itself

同样,大部分语言特性的依赖都可以在你自己的程序集中定义,使其工作。所以它不需要特定的.Net框架版本。

C# 6.0 在 .NET 5.0 中可用。 这取决于 CLR。 C# 4、4.5 和 4.5.1 使用 CLR 版本 4。

是的,C# 依赖于 .net 版本。两者之间的依赖性取决于所提供的功能和技术。参考以下 link:

https://msdn.microsoft.com/en-us/library/bb822049%28v=vs.110%29.aspx