天天看點

C# 版本和.NET 版本以及VS版本的對應關系

https://en.wikipedia.org/wiki/C_Sharp_(programming_language)#Versions

C# 版本和.NET 版本以及VS版本的對應關系

http://stackoverflow.com/questions/247621/what-are-the-correct-version-numbers-for-c

These are the versions of C# known about at the time of this writing:

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 <code>Dispose</code> on <code>IEnumerator</code>s which implemented <code>IDisposable</code>. 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 (<code>var</code>), query expressions

C# 4.0 released with .NET 4 and VS2010 (April 2010). Major new features: late binding (<code>dynamic</code>), 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, <code>await</code> in <code>catch</code> and <code>finally</code>, extension <code>Add</code> methods in collection initializers.

There is no such thing as C# 3.5 - the cause of confusion here is that the C# 3.0 is present in .NET 3.5. The language and framework are versioned independently, however - as is the CLR, which is at version 2.0 for .NET 2.0 through 3.5, .NET 4 introducing CLR 4.0, service packs notwithstanding. The CLR in .NET 4.5 has various improvements, but the versioning is unclear: in some places it may be referred to as CLR 4.5 (this MSDN page used to refer to it that way, for example), but the <code>Environment.Version</code> property still reports 4.0.xxx.

More detailed information about the relationship between the language, runtime and framework versions is available on the C# in Depth site. This includes information about which features of C# 3.0 you can use when targeting .NET 2.0. (If anyone wants to bring all of the content into this wiki answer, they're welcome to.)

繼續閱讀