问题

C#的正确版本号是什么?什么时候出来了?为什么我找不到有关C#3.5的任何答案?

这个问题主要是为了帮助那些使用不正确版本号搜索答案的人. "C#3.5".希望任何人如果找不到错误版本号的答案,将会找到问题,然后使用正确的版本号重新搜索.



解决方法

这些是在撰写本文时已知的C#版本:

  • C# 1.0 released with .NET 1.0 and VS2002 (January 2002)
  • C# 1.2 (bizarrely enough); released with .NET 1.1 and VS2003 (April 2003). First version to call Dispose on IEnumerators which implemented IDisposable. A few other small features.
  • C# 2.0 released with .NET 2.0 and VS2005 (November 2005). Major new features: generics, anonymous methods, nullable types, iterator blocks
  • C# 3.0 released with .NET 3.5 and VS2008 (November 2007). Major new features: lambda expressions, extension methods, expression trees, anonymous types, implicit typing (var), query expressions
  • C# 4.0 released with .NET 4 and VS2010 (April 2010). Major new features: late binding (dynamic), delegate and interface generic variance, more COM support, named arguments, tuple data type and optional parameters
  • C# 5.0 released with .NET 4.5 and VS2012 (August 2012). Major features: async programming, caller info attributes. Breaking change: loop variable closure.
  • C# 6.0 released with .NET 4.6 and VS2015 (July 2015). Implemented by Roslyn. Features: initializers for automatically implemented properties, using directives to import static members, exception filters, indexed members and element initializers, await in catch and finally, extension Add methods in collection initializers.

没有C#3.5这样的东西 - 这里的混乱的原因是C#3.0是存在于.NET 3.5.然而,语言和框架是独立版本的,就像CLR,2.0版本的.NET 2.0到3.5,.NET 4引入CLR 4.0,服务包. .NET 4.5中的CLR有各种改进,但版本不清楚:在某些地方,它可能被称为CLR 4.5(这个MSDN页面用于以这种方式引用,例如),但 Environment.Version 属性仍然报告4.0.xxx.

有关语言,运行时和框架版本之间关系的更多详细信息,请参见 C#深度网站.这包括有关在.NET 2.0上可以使用的C#3.0的哪些功能的信息. (如果有人想把所有的内容放入这个wiki答案,欢迎他们.)




相关问题推荐