Start Debugging

Tag: csharp

335 Beiträge · Seite2von34

So verwerfen Sie gepufferte Tastendrücke vor Console.ReadKey in einer C#-Konsolenspielschleife
Leeren Sie den Konsoleneingabepuffer mit while (Console.KeyAvailable) Console.ReadKey(true), bevor Sie auf eine neue Taste warten, und tun Sie das in einer Spielschleife in jedem Frame, damit sich die Tastenwiederholung nicht aufstaut. Wie der Puffer unter Windows und Unix in .NET 10 funktioniert, warum gehaltene Tasten verzögert wirken, die Echo-Falle unter Unix und FlushConsoleInputBuffer.
Verschachtelte Klammern und ausgewogene Tags mit Balancing Groups in .NET Regex abgleichen
Balancing Groups (?<name>) und (?<-name>) machen aus einer .NET-Regex-Capture-Gruppe einen Stack, sodass ein einziges Muster beliebig tief verschachtelte Klammern oder <div>-Tags erfassen kann. Das vollständige Muster, die Funktionsweise des Stacks, die Erfassung des inneren Inhalts mit (?<inner-open>) und die auf .NET 11 RC1 geprüften Stolperfallen: die Prüfung auf leeren Stack, katastrophales Backtracking, NonBacktracking und gemischte Klammertypen.
Was ist Transparent Struct Layout, und warum ändert ein Wrapper-Struct mit einem einzigen Feld die Aufrufkonvention in .NET?
Ein transparentes Struct wird von der ABI exakt wie sein einziges Feld behandelt. .NET 11 bietet diese Garantie nicht: Ein Struct, das ein double kapselt, wird unter Windows x64 in RCX übergeben, unter Linux und macOS aber in XMM0. Hier sind das Disassembly des .NET-11-JIT für drei ABIs, die daraus entstehenden P/Invoke-Fehler und wie Sie Wrapper-Typen schreiben, die an jeder Grenze sicher sind.
Zurück Weiter