wake-up-neo.com

Was sind die richtigen Versionsnummern für C #?

Was sind die richtigen Versionsnummern für C #? Was kam wann heraus? Warum kann ich keine Antworten zu C # 3.5 finden?

Diese Frage soll in erster Linie denjenigen helfen, die nach einer Antwort mit einer falschen Versionsnummer suchen, z. C # 3.5. Die Hoffnung ist, dass jeder, der keine Antwort mit der falschen Versionsnummer findet, this frage findet und dann erneut mit der richtigen Versionsnummer sucht.

2363
Jon Skeet

Versionsverlauf in C #:

Dies sind die Versionen von C # , die zum Zeitpunkt dieses Schreibens bekannt waren:

  • C # 1.0 veröffentlicht mit .NET 1.0 und VS2002 (Januar 2002)
  • C # 1.2 (seltsamerweise); veröffentlicht mit .NET 1.1 und VS2003 (April 2003). Erste Version, die Dispose für IEnumerator aufruft, die IDisposable implementiert hat. Ein paar andere kleine Features.
  • C # 2.0 wurde mit .NET 2.0 und VS2005 (November 2005) veröffentlicht. Wichtige neue Funktionen: Generika, anonyme Methoden, nullfähige Typen, Iteratorblöcke
  • C # 3.0 wurde mit .NET 3.5 und VS2008 (November 2007) veröffentlicht. Wichtige neue Funktionen: Lambda-Ausdrücke, Erweiterungsmethoden, Ausdrucksbäume, anonyme Typen, implizite Typisierung (var), Abfrageausdrücke
  • C # 4.0 wurde mit .NET 4 und VS2010 (April 2010) veröffentlicht. Wichtige neue Funktionen: Spätes Binden (dynamic), generische Abweichung bei Delegierung und Schnittstelle, mehr COM-Unterstützung, benannte Argumente, Tuple-Datentyp und optionale Parameter
  • C # 5.0 wurde mit .NET 4.5 und VS2012 (August 2012) veröffentlicht. Hauptmerkmale : asynchrone Programmierung, Anruferinfo-Attribute. Breaking Change: variable Schließung der Schleife .
  • C # 6.0 wurde mit .NET 4.6 und VS2015 (Juli 2015) veröffentlicht. Implementiert von Roslyn . Features : Initialisierer für automatisch implementierte Eigenschaften unter Verwendung von Anweisungen zum Importieren statischer Elemente, Ausnahmefilter, Elementinitialisierer, await in catch und finally, Erweiterung Add Methoden in Auflistungsinitialisierern.
  • C # 7.0 veröffentlicht mit .NET 4.7 und VS2017 (März 2017) Major neue Funktionen : Tupel , ref locals und ref return , Mustervergleich (einschließlich musterbasierter switch-Anweisungen), inline out Parameterdeklarationen , - lokale Funktionen , binäre Literale, Zifferntrennzeichen und willkürliche asynchrone Rückgaben .
  • C # 7.1 veröffentlicht mit VS2017 v15.3 (August 2017) Neue Funktionen: async main , Tuple-Mitgliedsname Inferenz , Standardausdruck , Musterabgleich mit Generika .
  • C # 7.2 veröffentlicht mit VS2017 v15.5 (November 2017) Neue Funktionen: Modifikator für den privaten geschützten Zugriff , Span <T>, aka Innenzeiger, aka Stackonly Struct , alles andere .
  • C # 7.3 wurde mit VS2017 v15.7 (Mai 2018) veröffentlicht. Neue Funktionen: Aufzählung, Delegierung und unmanaged generische Typeinschränkungen . ref Neuzuweisung. Unsichere Verbesserungen: stackalloc Initialisierung, nicht fixierte indizierte fixed Puffer, benutzerdefinierte fixed Anweisungen. Verbesserte Überladungsauflösung. Ausdrucksvariablen in Initialisierern und Abfragen. _==_ und _!=_ definiert für Tupel. Die Hintergrundfelder der Auto-Eigenschaften können jetzt durch Attribute als Ziel ausgewählt werden.
  • C # 8.0 ist derzeit in der Vorschau, eine Beta-Version verfügbar mit VS2019 v16.0 (April 2019). Erwartete neue Funktionen : Nicht nullbare Referenztypen , _IAsyncEnumerable<T>_ Unterstützung, Bereiche und Standardschnittstellenmethoden.

Als Antwort auf die Frage des OP:

Was sind die richtigen Versionsnummern für C #? Was kam wann heraus? Warum kann ich keine Antworten zu C # 3.5 finden?

C # 3.5 gibt es nicht - die Ursache für Verwirrung ist, dass C # 3.0 in .NET 3.5 vorhanden ist. Die Sprache und das Framework werden jedoch unabhängig voneinander versioniert. Dies gilt auch für die CLR, die ab Version 2.0 für .NET 2.0 bis 3.5 verfügbar ist, und für .NET 4, das trotz Service Packs CLR 4.0 einführt. Die CLR in .NET 4.5 weist verschiedene Verbesserungen auf, die Versionsverwaltung ist jedoch unklar: An einigen Stellen wird sie möglicherweise als CLR 4.5 bezeichnet ( diese MSDN-Seite wird beispielsweise verwendet, um auf diese Weise darauf zu verweisen). Die Eigenschaft Environment.Version meldet jedoch weiterhin 4.0.xxx.

Ab dem 3. Mai 2017 hat das C # -Sprachenteam einen Verlauf von C # -Versionen und -Funktionen auf dem Github-Repository erstellt: In C # -Sprachversionen hinzugefügte Funktionen . Es gibt auch eine Seite, die kommende und kürzlich implementierte Sprachfunktionen aufzeichnet .

2723
Jon Skeet

Das größte Problem beim Umgang mit den Versionsnummern von C # ist die Tatsache, dass es nicht an eine Version von .NET Framework gebunden ist, was anscheinend auf die synchronisierten Versionen zwischen Visual Studio und .NET Framework zurückzuführen ist.

Die Version von C # ist tatsächlich an den Compiler gebunden, nicht an das Framework. In Visual Studio 2008 können Sie beispielsweise C # 3.0 schreiben und .NET Framework 2.0, 3.0 und 3.5 als Ziel verwenden. Die C # 3.0-Nomenklatur beschreibt die Version der Codesyntax und die unterstützten Funktionen auf dieselbe Weise wie ANSI C89, C90, C99 die Codesyntax/Funktionen für C.

Schauen Sie sich Mono an, und Sie werden sehen, dass Mono 2.0 (die meist implementierte Version 2.0 von .NET Framework aus den ECMA-Spezifikationen) die C # 3.0-Syntax und -Funktionen unterstützt.

287
Bryan Rehbein

Dies ist das Gleiche wie die meisten Antworten hier, ist jedoch der Einfachheit halber tabellarisch angeordnet und enthält der Vollständigkeit halber Visual Studio- und .NET-Versionen.

╔════════════╦════════════╦══════════════╦═════════════╦══════════════╗
║ C# version ║ VS version ║ .NET version ║ CLR version ║ Release date ║
╠════════════╬════════════╬══════════════╬═════════════╬══════════════╣
║    1.0     ║    2002    ║    1.0       ║     1.0     ║   Feb 2002   ║
║    1.2     ║    2003    ║    1.1       ║     1.1     ║   Apr 2003   ║
║    2.0     ║    2005    ║    2.0       ║     2.0     ║   Nov 2005   ║
║            ║            ║    3.0       ║     2.0     ║   Nov 2006   ║
║    3.0     ║    2008    ║    3.5       ║     2.0     ║   Nov 2007   ║
║    4.0     ║    2010    ║    4.0       ║     4       ║   Apr 2010   ║
║    5.0     ║    2012    ║    4.5       ║     4       ║   Aug 2012   ║
║    5.0     ║    2013    ║    4.5.1     ║     4       ║   Oct 2013   ║
║            ║            ║    4.5.2     ║     4       ║   May 2014   ║
║    6.0     ║    2015    ║    4.6       ║     4       ║   Jul 2015   ║
║            ║            ║    4.6.1     ║     4       ║   Nov 2015   ║
║            ║            ║    4.6.2     ║     4       ║   Aug 2016   ║
║    7.0     ║    2017    ║              ║             ║   Mar 2017   ║
║            ║            ║    4.7       ║     4       ║   May 2017   ║
║    7.1     ║ 2017(v15.3)║              ║             ║   Aug 2017   ║
║            ║            ║    4.7.1     ║     4       ║   Oct 2017   ║
║    7.2     ║ 2017(v15.5)║              ║             ║   Dec 2017   ║
║            ║            ║    4.7.2     ║     4       ║   Apr 2018   ║
║    7.3     ║ 2017(v15.7)║              ║             ║   May 2018   ║
║    8.0     ║    2019    ║              ║             ║   Apr 2019   ║    
╚════════════╩════════════╩══════════════╩═════════════╩══════════════╝

Hinweis: Die .NET-Entwicklung ist heutzutage ziemlich unabhängig von VS, es gibt keine Korrelation zwischen den Versionen. Weitere Informationen finden Sie unter " .NET Framework-Versionen und Abhängigkeiten ".

277
nawfal
  • C # 1. mit Visual Studio.NET

  • C # 2. mit Visual Studio 2005

  • C # 3. mit Visual Studio 2008

  • C # 4. mit Visual Studio 2010

  • C # 5. mit Visual Studio 2012

  • C # 6. mit Visual Studio 2015

  • C # 7. mit Visual Studio 2017

  • C # 8. mit Visual Studio 2019 (in der Vorschau)

186
iTSrAVIE

VERSION_____LANGUAGE SPECIFICATION______Microsoft COMPILER

C # 1. / 1.2____Dezember 2001?/ 2003?___________Januar 2002?

C # 2.0_______September 2005________________November 2005?

C # 3.0_______Mai 2006_____________________November 2006?

C # 4.0_______März 2009 (Entwurf)______________April 2010?

C # 5.0; veröffentlicht mit .NET 4.5 im August 2012

C # 6.0; veröffentlicht mit .NET 4.6 2015

C # 7.0; veröffentlicht mit .NET 4.7 2017

76
Pramodh

C # -Versionsverlauf:

C # ist eine einfache und leistungsstarke objektorientierte Programmiersprache, die von Microsoft entwickelt wurde.

C # hat sich seit seiner ersten Veröffentlichung im Jahr 2002 stark weiterentwickelt. C # wurde mit .NET Framework 1.0 eingeführt.

In der folgenden Tabelle sind wichtige Funktionen aufgeführt, die in jeder Version von C # eingeführt wurden.

Enter image description here

Die neueste Version von C # ist in C # -Versionen verfügbar.

52
Milan

Ich habe die meisten Versionen in dieser Tabelle zusammengefasst. Die einzigen fehlenden sollten ASP.NET Core-Versionen sein. Ich habe auch verschiedene Versionen von ASP.NET MVC hinzugefügt.

Beachten Sie, dass ASP.NET 5 als ASP.NET Core 1.0 umbenannt wurde und ASP.NET MVC 6 als ASP.NET Core MVC 1.0.0 umbenannt wurde. Ich glaube, dass diese Änderung irgendwann im Januar 2016 stattgefunden hat.

Ich habe das Veröffentlichungsdatum von ASP.NET 5 RC1 in die Tabelle aufgenommen, aber ich muss noch ASP.NET Core 1.0 und andere Kernversionen aufnehmen, da ich das genaue Veröffentlichungsdatum nicht finden konnte. Weitere Informationen zu den Veröffentlichungsterminen für ASP.NET Core finden Sie hier: Wann ist die Veröffentlichung von ASP.NET Core 1.0 (ASP.NET 5/vNext) geplant?

Version

47
Mindless

Sie können die neuesten C # -Versionen prüfen hier C# Versions

44
Israel Ocbina

Beim Vergleich der MSDN-Artikel "Was ist neu in der Sprache und im Compiler von C # 2.0?" und " Was ist neu in Visual C # 2005? " kann auf "C # major_version.minor_version" geschlossen werden "wird entsprechend der Versionsnummer des Compilers geprägt.

Es gibt C # 1.2 entsprechend .NET 1.1 und VS 20 und auch Visual C # .NET 20 .

Microsoft hat jedoch weiter aufgehört, die Nebenversionsnummern (nach dem Punkt) zu erhöhen oder andere als Nullen zu haben, 0. Es ist jedoch zu beachten, dass C #, das .NET 3.5 entspricht, in msdn.Microsoft.com als "Visual C # 2008 Service Pack 1" bezeichnet wird.

Es gibt zwei parallele Namen: Nach der Versionsnummerierung in .NET/Compiler und nach der Visual Studio-Nummerierung.

C # 2. ist ein Synonym für Visual C # 2005

C # 3.0 entspricht (oder genauer gesagt kann es zielen):

C # -Versionsverlauf (überarbeitet):

Dies sind die Versionen von C # , die zum Zeitpunkt dieses Schreibens bekannt waren:

0