Wo finde ich die C # -Sprachspezifikation 6.0? [geschlossen]

84

Ich weiß, wo ich die C # 5-Sprachspezifikation finden kann, aber ich kann die C # 6-Sprachspezifikation nirgendwo finden.

Wo ist die C # 6- Sprachspezifikation?

Alex Booker
quelle
6
Der Versuch, nach etwas zu googeln, das es nicht gibt (insbesondere nach einem nicht googly Keyword wie "C #"), kann jedoch äußerst unbefriedigend sein. Stack Overflow war der erste Ort, an dem mir mitgeteilt wurde, dass es so etwas noch nicht gibt. Welche andere Stack Exchange-Site würden Sie stattdessen für diese Art von Anfrage empfehlen?
Wormbo
29
Die Frage nach der formalen Spezifikation einer Sprache unterscheidet sich stark von der Frage nach einem Buch, einem Werkzeug usw. Die Regel besteht darin, faulen Fragen vorzubeugen. Die Spezifikation einer Sprache ist dagegen für jemanden unverzichtbar, der z. ein Analysator oder Parser
Panagiotis Kanavos
25
Abstimmung, um diese Frage wieder zu öffnen, da es genau die Art von Dingen ist, für die die Leute zu SO kommen werden, wenn sie nach der Antwort suchen (wie ich es gerade getan habe).
David Arno
3
@DavidArno stimmte zu, deshalb bin ich heute, 05.10.2015, hier ... auch wenn noch keine endgültige c # 6.0-Sprachspezifikation verfügbar ist, sollte es zumindest eine Entwurfsversion online geben, die leicht zu finden ist. github.com/dotnet/roslyn ist nicht hilfreich, da es mehr um die Implementierung von c # und vb als um die c # -Sprachenspezifikation geht. Die 4. Ausgabe der Standard-ECMA-334 C # -Sprachspezifikation (Juni 2006) ist veraltet. Microsoft, wir brauchen das!
GerryLowry
4
Nach der Installation von Visual Studio 2015 war ich auch ziemlich enttäuscht, dass C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC#\Specifications\1033\CSharp Language Specification.docx(wo 14.0sich VS2015 bezieht) nur eine Kopie der alten C # 5-Spezifikation ist, keine neue Spezifikation, die die "Realität" von VS2015 und C # 6 widerspiegelt.
Jeppe Stig Nielsen

Antworten:

33

Zum Zeitpunkt des Schreibens (Mai 2016) hat Microsoft die Aktualisierung der Spezifikation für C # 6 noch nicht abgeschlossen. In der Zwischenzeit habe ich hier den neuesten Entwurf von Microsoft für die C # 6-Spezifikation veröffentlicht: https://github.com/ljw1004/csharpspec/blob/gh-pages/README.md

Dieser aktuelle Entwurf ist fast fertig, abgesehen von ein paar verbleibenden TODO-Kommentaren und Überprüfungen. (Diese Version wurde in github + markdown konvertiert, enthält jedoch auch Links zum Herunterladen von DOCX- und PDF-Versionen der Spezifikation sowie einen Link zum Herunterladen der Grammatik im ANTLR-Format.)

Eine vollständige Liste aller Spezifikationsänderungen von C # 5 zu C # 6 finden Sie in der Pull-Anforderung: https://github.com/ljw1004/csharpspec/pull/1/files

(Warum ist Microsoft noch nicht dazu gekommen, die C # 6-Spezifikation offiziell zu veröffentlichen? Aufgrund der laufenden Arbeiten zur Anpassung an ECMA, was natürlich einige Zeit in Anspruch nimmt; es schien eine Schande, sich um die Veröffentlichung der C # 6-Spezifikation zu bemühen Jetzt nur, um eine nachfolgende Version der C # 6-Spezifikation später nach Ausrichtung mit ECMA herauszubringen.

Lucian Wischik
quelle
Irgendeine Idee, wo ich Details zum whenKeyword finden kann? Ich habe nur Kleinigkeiten gefunden, und es geht mehr um die Ausnahmefilterung als allgemeines Thema als um die Details des Schlüsselworts.
David Pine
32

Es gibt keine Spezifikation für C # 6.0 auf dem gleichen Niveau wie früher für frühere Versionen.

Am nächsten kommen die Designnotizen für Roslyn auf CodePlex (und auf GitHub).

Hier ist eine Liste der C # -Funktionen:

https://roslyn.codeplex.com/wikipage?title=Language%20Feature%20Status&referringTitle=Documentation

Und hier sind die Hinweise für den sich null ausbreitenden Operator zum Beispiel:

https://roslyn.codeplex.com/discussions/540883


Seit das Sprachdesign-Team zu GitHub gewechselt ist, können Sie dem Design Notes-Filter im Roslyn-Repository folgen, um zu sehen, wie C # 7.0 entsteht:

https://github.com/dotnet/roslyn/labels/Design%20Notes

i3arnon
quelle
2
Danke, Bar. Haben Sie eine kanonische Quelle, die besagt, dass keine Spezifikation veröffentlicht wird?
Alex Booker
@Petrichor leider nein.
i3arnon
1
@ThomasLevesque gut, dieser wurde im Freien mit Kundenfeedback entworfen und es gibt separate Design-Hinweise für jede Funktion.
i3arnon
3
@ThomasLevesque Spezifikationen würden dann nach der eigentlichen Implementierung herauskommen? ...
Philippe
1
@ AlexBooker Dies scheint mir eine kanonische Quelle zu sein: twitter.com/MadsTorgersen/status/704434833041158145
i3arnon