2909 Stimmen

Was sind die korrekten Versionsnummern für C#?

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

Diese Frage soll vor allem denjenigen helfen, die nach einer Antwort mit einer falschen Versionsnummer suchen, z. B. C# 3.5 . Die Hoffnung ist, dass jeder, der eine Antwort mit der falschen Versionsnummer nicht finden kann, die este Frage und suchen Sie dann erneut mit der richtigen Versionsnummer.

92 Stimmen

Dies ist eine der besten Quellen, um alles zu verstehen. de.wikipedia.org/wiki/C_Sharp_(Programmiersprache)

1 Stimmen

Sollte dieser zweite Absatz nicht in einem Kommentar statt in der Frage stehen, da er nicht Teil der Frage ist?

31 Stimmen

@TankorSmash: Ich denke, es ist im Kontext der Frage so wichtig, dass es sich lohnt, es dort zu belassen, wo es ist. IMO, natürlich.

67voto

Mindless Punkte 2282

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, diese Änderung fand irgendwann im Januar 2016 statt.

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 Core-Versionen einbeziehen, da ich die genauen Veröffentlichungsdaten nicht finden konnte. Sie können mehr über die Veröffentlichungsdaten von ASP.NET Core hier lesen: Wann ist die Veröffentlichung von ASP.NET Core 1.0 (ASP.NET 5 / vNext) geplant?

Version

1 Stimmen

Ich bin mir nicht sicher, ob es hilfreich ist, MVC in der gleichen Tabelle zu haben, um ehrlich zu sein... es ist einfach auf einem separaten Veröffentlichungsplan, effektiv.

0 Stimmen

@Jon Das stimmt, ich füge es hier nur für alle hinzu, die es brauchen könnten, denn ich habe versucht, die entsprechenden Veröffentlichungsdaten der .NET-Frameworks herauszufinden, um ein besseres Verständnis der gesamten Versionsgeschichte zu bekommen.

0 Stimmen

59voto

Israel Ocbina Punkte 453

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

0 Stimmen

0 Stimmen

1 Stimmen

Könnten Sie diese Antwort vielleicht löschen, da sie inzwischen völlig veraltet ist?

43voto

Vergleich der MSDN-Artikel "Was ist neu in der C# 2.0 Sprache und Compiler" und " Neue Funktionen in Visual C# 2005 ", ist es möglich, abzuleiten, dass "C# major_version.minor_version" entsprechend der Versionsnummerierung des Compilers geprägt ist.

Es gibt C# 1.2 entspricht .NET 1.1 und VS 2003 und auch genannt als Visual C# .NET 2003 .

Im weiteren Verlauf hat Microsoft jedoch aufgehört, die Nummern der Unterversionen (nach dem Punkt) zu erhöhen oder sie anders als Null zu setzen, 0 . Es sollte jedoch beachtet werden, dass C#, das .NET 3.5 entspricht, in msdn.microsoft.com als "Visual C# 2008 Service Pack 1" .

Es gibt zwei parallele Bezeichnungen: Nach der Nummerierung der Haupt-.NET-/Compiler-Version und nach der Nummerierung von Visual Studio.

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

C# 3.0 entspricht (oder besser gesagt, kann zielen) auf:

2 Stimmen

Diese Antwort ist sehr veraltet - und alles ist bereits in der akzeptierten Antwort enthalten. Ich empfehle Ihnen dringend, diese Antwort zu löschen.

21voto

sayah imad Punkte 1469

C# 1.0 - Visual Studio .NET 2002

  • Klassen
  • Strukturen
  • Schnittstellen
  • Veranstaltungen
  • Eigenschaften
  • Delegierte
  • Ausdrücke
  • Erklärungen
  • Attribute
  • Literale

C# 1.2 - Visual Studio .NET 2003

  • Entsorgen in foreach
  • foreach über String-Spezialisierung
  • C# 2 - Visual Studio 2005
  • Generika
  • Teilweise Typen
  • Anonyme Methoden
  • Iteratoren
  • Nullbare Typen
  • Getter/Setter getrennte Zugänglichkeit
  • Umwandlung von Methodengruppen (Delegierte)
  • Statische Klassen
  • Delegierte Schlussfolgerung

C# 3 - Visual Studio 2008

  • Implizit typisierte lokale Variablen
  • Objekt- und Sammlungsinitialisierer
  • Auto-Implementierte Eigenschaften
  • Anonyme Typen
  • Methoden der Erweiterung
  • Ausdrücke abfragen
  • Lambda-Ausdruck
  • Ausdrucksbäume
  • Teilweise Methoden

C# 4 - Visual Studio 2010

  • Dynamische Bindung
  • Benannte und optionale Argumente
  • Co- und Contra-Varianz für generische Delegierte und Schnittstellen
  • Eingebettete Interop-Typen ("NoPIA")

C# 5 - Visual Studio 2012

  • Asynchrone Methoden
  • Attribute zur Anruferinformation

C# 6 - Visual Studio 2015

  • Entwurf der Spezifikation online
  • Compiler-as-a-Service (Roslyn)
  • Import von statischen Typenmitgliedern in den Namensraum
  • Ausnahme-Filter
  • Await in catch/finally-Blöcken
  • Automatische Eigenschaftsinitialisierungen
  • Standardwerte für Getter-Only-Eigenschaften
  • Ausdrucksstarke Mitglieder
  • Null-Propagator (Null-Bedingungsoperator, prägnante Null-Prüfung)
  • String-Interpolation
  • Name des Betreibers
  • Wörterbuch-Initialisierer

C# 7.0 - Visual Studio 2017

  • Out-Variablen
  • Abgleich von Mustern
  • Tupel
  • Dekonstruktion
  • Rückwürfe
  • Lokale Funktionen
  • Binäre Literale
  • Zifferntrennzeichen
  • Rücksendungen und Einheimische
  • Verallgemeinerte asynchrone Rückgabetypen
  • Mehr ausdrucksstarke Mitglieder
  • Ausdrücke werfen

C# 7.1 - Visual Studio 2017 Version 15.3

  • Asynchrones Haupt
  • Standardausdrücke
  • Referenz-Baugruppen
  • Abgeleitete Tupel-Elementnamen
  • Mustervergleiche mit Generika

C# 7.2 - Visual Studio 2017 Version 15.5

  • Spannweite und refähnliche Typen
  • In Parametern und Nur-Lese-Referenzen
  • Ref. Bedingt
  • Nicht abschließende benannte Argumente
  • Private geschützte Zugänglichkeit
  • Zifferntrennzeichen nach dem Basisbezeichner

C# 7.3 - Visual Studio 2017 Version 15.7

  • System.Enum, System.Delegate und nicht verwaltete Beschränkungen.
  • Ref. lokale Neuzuweisung: Ref-Locals und Ref-Parameter können jetzt mit dem Ref-Zuweisungsoperator (= ref) neu zugewiesen werden.
  • Stackalloc-Initialisierer: Stack-alloc Arrays können nun initialisiert werden, z.B. Span x = stackalloc[] { 1, 2, 3 };.
  • Indizierung von beweglichen festen Puffern: Feste Puffer können indiziert werden, ohne dass sie vorher angeheftet werden.
  • Individuell festgelegte Aussage: Typen, die eine geeignete GetPinnableReference implementieren, können in einer festen Anweisung verwendet werden.
  • Verbesserte Überlastungskandidaten: Einige Überlastungskandidaten können frühzeitig ausgeschlossen werden, wodurch Mehrdeutigkeiten reduziert werden.
  • Ausdrucksvariablen in Initialisierern und Abfragen: Ausdrucksvariablen wie out var und Mustervariablen sind in Feldinitialisierern, Konstruktorinitialisierern und LINQ-Abfragen zulässig.
  • Tupel-Vergleich: Tupel können jetzt mit == und != verglichen werden.
  • Attribute auf hinterlegten Feldern: Erlaubt [Feld: ]-Attribute auf eine automatisch implementierte Eigenschaft, um ihr Hintergrundfeld zu erreichen.

C# 8.0 - .NET Core 3.0 und Visual Studio 2019 Version 16.3

  • Nullbare Referenztypen: drücken Sie die Absicht der Nullbarkeit von Referenztypen mit ?, notnull constraint und annotations-Attributen in APIs aus. Der Compiler wird diese Attribute verwenden, um mögliche Nullwerte zu erkennen, die dereferenziert oder an ungeeignete APIs übergeben werden.
  • Standardschnittstellenmitglieder: Schnittstellen können jetzt Mitglieder mit Standardimplementierungen sowie statische/private/geschützte/interne Mitglieder mit Ausnahme des Zustands haben (d.h. keine Felder).
  • Rekursive Muster: Positions- und Eigenschaftsmuster ermöglichen es, tiefer in ein Objekt einzudringen, und Switch-Ausdrücke ermöglichen es, mehrere Muster zu testen und entsprechende Ergebnisse in kompakter Form zu erzeugen.
  • Asynchrone Ströme: await foreach und await using ermöglichen die asynchrone Aufzählung und Entsorgung von IAsyncEnumerable-Sammlungen und IAsyncDisposable-Ressourcen, und Async-Iterator-Methoden ermöglichen die bequeme Implementierung solcher asynchronen Ströme.
  • Verbessertes using: eine using-Deklaration wurde mit einem impliziten Geltungsbereich hinzugefügt und using-Anweisungen und -Deklarationen ermöglichen die Entsorgung von ref-Strukturen unter Verwendung eines Musters.
  • Ranges und Indizes: die i..j-Syntax erlaubt die Konstruktion von System.Range-Instanzen, die ^k-Syntax erlaubt die Konstruktion von System.Index-Instanzen, die zum Indizieren/Sliden von Sammlungen verwendet werden können.
  • Null-Koaleszenz-Zuweisung: ??= ermöglicht eine bedingte Zuweisung, wenn der Wert Null ist.
  • Statische lokale Funktionen: Lokale Funktionen, die mit static modifiziert wurden, können diese oder lokale Variablen nicht erfassen, und lokale Funktionsparameter schattieren nun lokale Funktionen in übergeordneten Bereichen.
  • Nicht verwaltete generische Strukturen: Generische Strukturtypen, die nur nicht verwaltete Felder haben, gelten jetzt als nicht verwaltet (d.h. sie erfüllen die Bedingung für nicht verwaltete Felder).
  • Readonly-Mitglieder: Einzelne Mitglieder können nun als readonly markiert werden, um anzuzeigen und zu erzwingen, dass sie den Zustand der Instanz nicht verändern.
  • Stackalloc in verschachtelten Kontexten: Stackalloc-Ausdrücke sind jetzt in mehr Ausdruckskontexten erlaubt.
  • Alternative interpolierte wortwörtliche Zeichenfolgen: @$"..."-Strings werden genau wie $@"..." als interpolierte Verbatim-Strings erkannt.
  • Obsolet bei Eigenschafts-Accessoren: Eigenschafts-Accessoren können jetzt individuell als obsolet markiert werden.
  • Zulassen, dass t bei einem Parameter vom unbeschränkten Typ null ist

[Quelle]: https://github.com/dotnet/csharplang/blob/master/Language-Version-History.md

12voto

Version     .NET Framework     Visual Studio     Important Features

C# 1.0 .NET Framework 1.0/1.1 Visual Studio .NET 2002

  • Grundlegende Merkmale

C# 2.0 .NET Framework 2.0 Visual Studio 2005

  • Generika
  • Teilweise Typen
  • Anonyme Methoden
  • Iteratoren
  • Nullbare Typen
  • Private Einsteller (Eigenschaften)
  • Umwandlung von Methodengruppen (Delegierte)
  • Kovarianz und Contra-Varianz
  • Statische Klassen

C# 3.0 .NET Framework 3.0 \3.5 Visual Studio 2008

  • Implizit typisierte lokale Variablen
  • Objekt- und Sammlungsinitialisierer
  • Auto-Implementierte Eigenschaften
  • Anonyme Typen
  • Methoden der Erweiterung
  • Ausdrücke abfragen
  • Lambda-Ausdrücke
  • Ausdrucksbäume
  • Partielle Methoden

C# 4.0 .NET Framework 4.0 Visual Studio 2010

  • Dynamische Bindung (späte Bindung)
  • Benannte und optionale Argumente
  • Allgemeine Ko- und Kontravarianz
  • Eingebettete Interop-Typen

C# 5.0 .NET Framework 4.5 Visual Studio 2012/2013

  • Asynchrone Funktionen
  • Informationen zum Anrufer

C# 6.0 .NET Framework 4.6 Visual Studio 2013/2015

  • Ausdrucksstarke Methoden
  • Auto-Eigenschafts-Initialisierer
  • Name des Ausdrucks
  • Primärer Konstrukteur
  • Warten im Catch-Block
  • Ausnahme-Filter
  • String-Interpolation

C# 7.0 .NET Core 2.0 Visual Studio 2017

  • Ausgangsvariablen
  • Tupel
  • Rückwürfe
  • Abgleich von Mustern
  • Lokale Funktionen
  • Verallgemeinerte asynchrone Rückgabetypen
  • Verbesserungen der Syntax für numerische Literale

C# 8.0 .NET Core 3.0 Visual Studio 2019

  • Nur-Lese-Mitglieder
  • Standard-Interface-Methoden
  • Verbesserungen bei der Mustererkennung:
    • Ausdrücke wechseln
    • Eigenschaftsmuster
    • Tupel-Muster
    • Positionsbezogene Muster
  • Verwendung von Deklarationen
  • Statische lokale Funktionen
  • Einweg-Ref-Strukturen
  • Nullbare Referenztypen
  • Asynchrone Ströme
  • Asynchrones Einwegprodukt
  • Indizes und Spannen
  • Null-Koaleszenz-Zuweisung
  • Nicht verwaltete konstruierte Typen
  • Stackalloc in verschachtelten Ausdrücken
  • Anreicherung von interpolierten Worthülsen

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X