Die Sprache selbst ist im Allgemeinen nicht an eine bestimmte Laufzeitumgebung gebunden, obwohl einige Sprachfunktionen Framework-Funktionen erfordern. (Zum Beispiel sind interpoliert Saiten etwas flexibler auf .NET 4.6 als auf .NET 2.0 aufgrund der Anwesenheit von FormattableString
.) Allerdings gibt es zwei Dinge zu beachten:
- Die Version der C# Compiler unterstützt durch das SDK haben Sie installiert (
dotnet cli
)
- die Version der C# Compiler-Pakete, die von einem bestimmten Framework-Version
Das SDK unterstützt C# 6 aus der Box unterstützt wird. Ich würde persönlich erwarten die C# 7-Version der Roslyn-Pakete auch .NET Core (z. B. Targeting netstandard1.5
) zu unterstützen, so Code, der mehr Code zur Laufzeit kompiliert sollte auf dieser Front in Ordnung sein. Ich weiß nicht, was der Plan in Bezug auf das Verknüpfen von Compiler-Versionen mit SDK-Versionen ist - ich vermute, dass das klarer wird, wenn der Übergang von project.json zu msbuild abgeschlossen ist.
Ich weiß nicht, welche Sprachversion ein bestimmtes SDK standardmäßig unterstützt - es wäre ziemlich einfach, eine Folge von kleinen Klassen zu entwickeln, die bestimmte Sprachfunktionen ausführen und sehen, ob sie kompiliert werden , Na sicher. Schwieriger wäre es, einen Code zu entwickeln, der mit mehreren Versionen erstellt wird, aber unterschiedliche Ergebnisse liefert; Es gibt Möglichkeiten, dies zwischen aufeinander folgenden Sprachversionen zu tun (mindestens 2-3, 3-4, 4-5 ... nicht sicher über 5-6), aber sie sind etwas mehr verschachtelt.
Okay, aber die Frage ist nicht darüber. – boj