Neu in .NET 9.0 [31]: Verbesserte Ausgabe bei Debug.Assert()
Beim Fehlschlagen der ĂĽbergebenen Bedingung zeigt .NET 9.0 diese in der Ausgabe komplett an.
(Bild: Pincasso/Shutterstock.com)
- Dr. Holger Schwichtenberg
Die altbekannte Methode Debug.Assert() bietet eine kleine Verbesserung in .NET 9.0: Beim Fehlschlagen der ĂĽbergebenen Bedingung sehen Entwicklerinnen und Entwickler in der Ausgabe die komplette fehlgeschlagene Bedingung.
Videos by heise
So kam beispielsweise bei
var x = 42;
var y = 42;
…
Debug.Assert(x > 0 && y < 0);
vor .NET 9.0 diese Nachricht:
Assertion failed.
at Program.SomeMethod(Int32 a, Int32 b)
Nun sehen Entwicklerinnen und Entwickler seit .NET 9.0 eine ausfĂĽhrlichere Information:
Assertion failed.
x > 0 && y < 0
at Program.SomeMethod(Int32 a, Int32 b)
Damit dies funktioniert, gibt es eine neue Ăśberladung der Methode Debug.Assert() mit der Annotation [CallerArgumentExpression] vor dem zweiten Parameter:
public static void Assert([DoesNotReturnIf(false)] bool condition,
[CallerArgumentExpression("condition")] string? message = null);
Vor .NET 9.0 konnte man dies nur erreichen, indem man die Bedingung noch einmal explizit als Zeichenkette angab:
Debug.Assert(x > 0 && y < 0, "x > 0 && y < 0");
(rme)