Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Руководство_по_C#.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
10.01 Mб
Скачать

1.3Версии 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 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 and optional parameters

C# 5.0 released with .NET 4.5 in August 2012. Major features: async programming, caller info attributes.

C# 6.0 (with the new Roslyn) - first End User Preview released April 3rd 2014. Features (proposed): initializers for automatically implemented properties, using directives to import static members, exception filters, binary literals and digit separators, indexed members and element initializers, await in catch and finally, extension Add 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 Environment.Version 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.)

Источник следующих таблиц: http://en.wikipedia.org/wiki/C_Sharp_(programming_language)

Версии C#

Version

Language specification

.

Date

NET Framework

(Fr)

Visual Studio

ECMA

ISO/IEC

Microsoft

C # 1.0

December 2002

April 2003

January 2002

January 2002

.NET Fr 1.0

VS .NET 2002

C# 1.2

October 2003

April 2003

.NET Fr 1.1

VS .NET 2003

C# 2.0

June 2006

Sept. 2006

Sept. 2005[note 3]

Nov. 2005

.NET Fr 2.0

VS 2005

C# 3.0

None (note 4)

August 2007

Nov. 2007

.NET Fr 2.0 (Except LINQ/Query Extensions)[31] .NET Fr 3.0 (Except LINQ/Query Extensions)[31] .NET Framework 3.5

VS 2008

VS 2010

C# 4.0

April 2010

April 2010

.NET Fr 4

VS 2010

C# 5.0

June 2013

August 2012

.NET Fr4.5

VS 2012

VS 2013

C# 6.0

Status

TBD

.NET Framework 4.6

VS 2015

Summary of versions

C# 2.0

C# 3.0

C# 4.0

C# 5.0 [32]

Future

Features added

  • Generics[33]

  • Partial types[33]

  • Anonymous methods[33]

  • Iterators[33]

  • Nullable types[33]

  • Getter/setter separate accessibility[33]

  • Method group conversions (delegates)[33]

  • Co- and Contra-variance for delegates[33]

  • Static classes[33]

  • Implicitly typed local variables[34]

  • Object and collection initializers[34]

  • Auto-Implemented properties[34]

  • Anonymous types[34]

  • Extension methods[34]

  • Query expressions[34]

  • Lambda expressions[34]

  • Expression trees[34]

  • Partial methods[35]

  • Dynamic binding[36]

  • Named and optional arguments[36]

  • Generic co- and contravariance[36]

  • Embedded interop types ("NoPIA")[36]

  • Asynchronous methods[37]

  • Caller info attributes[37]

  • Compiler-as-a-service (Roslyn)

C# 6.0 Planned/Done

  • Import of static type members into namespace[38]

  • Exception filters[38]

  • Await in catch/finally blocks[38]

  • Auto property initializers[38]

  • Default values for getter-only properties[38]

  • Expression-bodied members[38]

  • Null propagator (Succinct null checking)[38]

  • String Interpolation[38]

  • nameof operator[38]

  • Parameterless struct constructors[38]

  • Dictionary initializer[38]

C# 7.0 Proposals

  • Declaration expressions[39]

  • Parameter arrays for IEnumerable interfaces[39]