Start Debugging

Tag: csharp-14

26 Beiträge · Seite1von3

Was kopiert ein C# `with`-Ausdruck tatsächlich, und warum werden berechnete Record-Eigenschaften nicht neu berechnet?
Ein with-Ausdruck ruft die vom Compiler generierte Methode <Clone>$ des Records auf, die einen Kopierkonstruktor ausführt: Er kopiert jedes Instanzfeld und überspringt alle Initialisierer. Deshalb sind Eigenschaften, die aus anderen Eigenschaften initialisiert werden, zwischengespeicherte Werte und Guid-IDs nach dem Kopieren veraltet. Gemessen unter .NET 10 mit C# 14, samt den Lösungen, die tatsächlich funktionieren.
Was ist ref-safe-context in C#, und wie legt der Compiler sie für ref-Locals fest?
ref-safe-context ist der Gültigkeitsbereich, in dem ein Verweis auf eine Variable gültig bleibt. Hier sind die vier Contexts, die Regel, die den Context eines ref-Locals bei seinem Initialisierer festlegt, der Grund, warum eine ref-Neuzuweisung ihn nie erweitern oder einengen kann, und die daraus folgenden Fehler CS8157, CS8168, CS8374 und CS9079, mit Compiler-Ausgabe von C# 14 auf .NET 10 und .NET 11 RC1.
Weiter