Complex.ToString-Format geändert in <a; b>
Um Formatierungswerte mit kulturspezifischen Informationen besser zu unterstützen, wurde die Standardzeichenfolgendarstellung komplexer Zahlen geändert, um zu vermeiden, dass Zeichen verwendet werden, die in formatierten numerischen Werten verwendet werden können. Diese Änderung wirkt sich auf Complex.ToString aus, wo der Wert jetzt anstelle von <a; b>
als (a, b)
formatiert ist. Sowohl a als auch b werden mit dem allgemeinen Formatbezeichner („G“) formatiert und verwenden die Konventionen der vom Anbieter definierten Kultur — dies hat sich nicht geändert.
Vorheriges Verhalten
Zuvor wurde die Zeichenfolgendarstellung der komplexen Zahl, die von Complex.ToString zurückgegeben wird, mithilfe der kartesischen Koordinaten in der Form (a, b)
angezeigt, wobei a der reale Teil der komplexen Zahl war und b der imaginäre Teil.
Neues Verhalten
Ab .NET 8 wird die Zeichenfolgendarstellung der komplexen Zahl, die von Complex.ToString zurückgegeben wird, mithilfe der kartesischen Koordinaten in der Form <a; b>
angezeigt, wobei a der reale Teil der komplexen Zahl ist und b der imaginäre Teil.
Eingeführt in Version
.NET 8
Typ des Breaking Changes
Diese Änderung ist eine Verhaltensänderung.
Grund für die Änderung
Die Änderung zur Verwendung eines Semikolons ermöglicht die Unterstützung von Formatierungen mit kulturspezifischen Informationen. Sie ermöglicht auch die entsprechende Notwendigkeit, Ergebnisse wieder zu analysieren, da sie INumberBase<TSelf> implementiert.
Die Änderung von Klammern (( )
) in winkelige Klammern verhindert potenzielle Kollisionen mit numerischen Formaten, bei denen negative Zahlen als formatiert (x)
sind. Das neue Verhalten entspricht auch dem Verhalten der Vector*
-Typen.
Empfohlene Maßnahme
Wenn Sie das vorherige Format benötigen, können Sie einen benutzerdefinierten Zeichenfolgenformatierungsmechanismus verwenden, z. B. $"({complex.Real}, {complex.Imaginary})"
, zum Erstellen einer Zeichenfolge in diesem Format.