Complex.ToString 格式已更改为 <a; b>

为了更好地支持包含区域性特定信息的格式化值,已更改复数的默认字符串表示形式,以避免使用可在格式化数值中使用的字符。 此更改会影响 Complex.ToString,现已将其中值格式化为 <a; b> 而不是 (a, b)。 a 和 b 都使用通用格式说明符(“G”)和提供者定义的区域性约定进行格式化 - 这一点没有改变。

旧行为

以前,Complex.ToString 返回的复数的字符串表示形式使用其笛卡尔坐标以 (a, b) 的形式显示数字,其中 a 是复数的实部,b 是其虚部。

新行为

从 .NET 8 开始,Complex.ToString 返回的复数的字符串表示形式使用其笛卡尔坐标以 <a; b> 的形式显示数字,其中 a 是复数的实部,b 是其虚部。

引入的版本

.NET 8

中断性变更的类型

此更改为行为更改

更改原因

使用分号的更改支持使用区域性特定信息的格式设置。 如果它实现了 INumberBase<TSelf>,它也能满足解析结果的相应需求。

将括号 (( )) 更改为尖括号可以避免与数字格式发生潜在冲突,其中负数的格式设置为 (x)。 新的行为也与 Vector* 类型的行为一致。

如果需要以前的格式,可以使用自定义字符串格式化机制,例如使用 $"({complex.Real}, {complex.Imaginary})" 来生成该格式的字符串。

受影响的 API