c# visual sharp - Was sind die korrekten Versionsnummern für C #?




5 Answers

Versionsgeschichte der C # -Sprache:

Dies sind die zum Zeitpunkt dieses Schreibens bekannten Versionen von C # :

  • C # 1.0 mit .NET 1.0 und VS2002 veröffentlicht (Januar 2002)
  • C # 1.2 (bizarr genug); veröffentlicht mit .NET 1.1 und VS2003 (April 2003). Erste Version, die Dispose für IEnumerator die IDisposable implementiert IDisposable . Ein paar andere kleine Funktionen.
  • C # 2.0 wurde mit .NET 2.0 und VS2005 (November 2005) veröffentlicht. Wichtige neue Funktionen: Generics, 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äte Bindung ( dynamic ), generische Varianz für Delegaten und Schnittstellen, mehr COM-Unterstützung, benannte Argumente, Tupel-Datentyp und optionale Parameter
  • C # 5.0 wurde mit .NET 4.5 und VS2012 (August 2012) veröffentlicht. Hauptfunktionen: asynchrone Programmierung, Attribute für Anruferinformationen. Breaking change: Schleifenvariable schließen .
  • C # 6.0 wurde mit .NET 4.6 und VS2015 (Juli 2015) veröffentlicht. Umgesetzt von Roslyn . Features : Initialisierer für automatisch implementierte Eigenschaften, Direktive zum Importieren statischer Member, Ausnahmefilter, Elementinitialisierer, await in catch und zum finally Add Methoden in Collection-Initialisierern.
  • C # 7.0 mit .NET 4.7 und VS2017 (März 2017) veröffentlicht. Wichtige neue Funktionen : tuples , Ref-Locals und Ref-Return , Musterabgleich (einschließlich musterbasierter switch-Anweisungen), Inline- out Parameterdeklarationen , lokale Funktionen , Binärliterale, Zifferntrennzeichen . und willkürliche async kehrt zurück .
  • C # 7.1 mit VS2017 v15.3 (August 2017) veröffentlicht. Neue Funktionen: Async-Main , Rückschluss auf den Namen des Tupel-Mitglieds , Standardausdruck , Musterabgleich mit Generika .
  • C # 7.2 mit VS2017 v15.5 (November 2017) veröffentlicht Neue Funktionen: Privater geschützter Zugriffsmodifikator , Span <T>, aka Interieur Pointer, aka Stackonly struct , alles andere .
  • C # 7.3 wurde mit VS2017 v15.7 (Mai 2018) veröffentlicht. Neue Funktionen: Enum, Delegate und nicht unmanaged generische Typeinschränkungen . Umwidmung. Unsichere Verbesserungen: stackalloc Initialisierung, nicht gepinnte indizierte fixed Puffer, benutzerdefinierte fixed Anweisungen. Verbesserte Überladungsauflösung. Ausdrucksvariablen in Initialisierern und Abfragen. == und != für Tupel definiert. Die Sicherungsfelder der Auto-Eigenschaften können jetzt von Attributen anvisiert werden.
  • C # 8.0 derzeit in der Vorschau. Erwartete neue Funktionen : Nicht-nullfähige Referenztypen , IAsyncEnumerable<T> -Unterstützung, Bereiche und Standardschnittstellenmethoden.

Als Antwort auf die Frage des OP:

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

Es gibt kein C # 3.5 - die Ursache der Verwirrung ist, dass das C # 3.0 in .NET 3.5 vorhanden ist. Die Sprache und das Framework werden jedoch unabhängig voneinander versioniert - ebenso wie die CLR, die sich in Version 2.0 für .NET 2.0 bis 3.5 befindet. .NET 4 führt CLR 4.0 ein, ungeachtet der Service Packs. Die CLR in .NET 4.5 weist verschiedene Verbesserungen auf, die Versionierung ist jedoch unklar: An einigen Stellen wird sie als CLR 4.5 bezeichnet ( diese MSDN-Seite wird beispielsweise so verwendet), aber die Eigenschaft Environment.Version bleibt erhalten meldet 4.0.xxx.

Ausführlichere Informationen zur Beziehung zwischen der Sprach-, Laufzeit- und Framework-Version finden Sie auf der Website von C # in Depth . Dies enthält Informationen dazu, welche Features von C # 3.0 Sie beim Targeting von .NET 2.0 verwenden können. (Wenn jemand den gesamten Inhalt in diese Wiki-Antwort einbringen möchte, kann er dies gerne tun.)

Seit dem 3. Mai 2017 hat das C # -Sprachenteam eine Historie der C # -Versionen und -Funktionen für ihr Github-Repo erstellt: In C # -Programmversionen hinzugefügte Funktionen . Es gibt auch eine Seite, die kommende und kürzlich implementierte Sprachfunktionen aufzeichnet .

download operator

Was sind die korrekten 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 falschen Versionsnummer suchen, z. B. C # 3.5 . Die Hoffnung ist, dass jeder, der keine Antwort mit der falschen Versionsnummer findet, diese Frage findet und dann erneut mit der richtigen Versionsnummer sucht.




Dies ist das gleiche wie bei den meisten Antworten, jedoch zur Vereinfachung tabellarisch und zur Vollständigkeit mit 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   ║
╚════════════╩════════════╩══════════════╩═════════════╩══════════════╝

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 ".




VERSION _____ VERSION _____ SPRACHE ______ MICROSOFT COMPILER

C # 1.0 / 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; Im August 2012 mit .NET 4.5 veröffentlicht

C # 6,0; veröffentlicht mit .NET 4.6 2015

C # 7,0; veröffentlicht mit .NET 4.7 2017




Sie können die neuesten C # -Versionen here überprüfen




Wenn Sie die MSDN-Artikel "Was ist neu in der C # 2.0-Sprache und im Compiler" und " Was ist neu in Visual C # 2005 " vergleichen, können Sie ableiten, dass "C # major_version.minor_version" gemäß der Versionsnummer des Compilers geprägt ist.

Es gibt C # 1.2, das .NET 1.1 und VS 2003 entspricht und auch als Visual C # .NET 2003 bezeichnet wird .

Aber Microsoft hat aufgehört, die Nebenversionsnummern (nach dem Punkt) zu erhöhen oder sie mit einer anderen Zahl als Null zu versehen, 0 . Es sollte jedoch beachtet werden, dass C #, das .NET 3.5 entspricht, in msdn.microsoft.com als "Visual C # 2008 Service Pack 1" bezeichnet wird .

Es gibt zwei parallele Benennungen: Nach wichtigen .NET / Compiler-Versionsnummerierungen und nach Visual Studio-Nummerierungen.

C # 2.0 ist ein Synonym für Visual C # 2005

C # 3.0 entspricht (oder kann richtiger sein):




Related