sharp - visual c#




Was sind die korrekten Versionsnummern für C#? (6)

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.


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 .


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, die anscheinend auf die synchronisierten Versionen zwischen Visual Studio und .NET Framework zurückzuführen ist.

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

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


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

Beachten Sie, dass ASP.NET 5 in ASP.NET Core 1.0 und ASP.NET MVC 6 in 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 hinzufügen, da ich die genauen Veröffentlichungsdaten nicht finden konnte. Weitere Informationen zu den Veröffentlichungsdaten von ASP.NET Core finden Sie hier: Wann ist die Veröffentlichung von ASP.NET Core 1.0 (ASP.NET 5 / vNext) geplant?


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


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


C # Versionsverlauf:

C # ist eine einfache und leistungsfähige 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.

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





compiler-version