Formato Complex.ToString alterado para <a; b>

Para melhor suportar a formatação de valores com informações específicas da cultura, a representação de cadeia de caracteres padrão de números complexos foi alterada para evitar o uso de caracteres que podem ser usados ​​em valores numéricos formatados. Essa alteração afeta Complex.ToString, onde o valor agora está formatado como <a; b> em vez de (a, b). Tanto a quanto b são formatados usando o especificador de formato geral ("G") e as convenções da cultura definidas pelo provedor—isso não mudou.

Comportamento anterior

Anteriormente, a representação em cadeia de caracteres do número complexo retornado por Complex.ToString exibia o número usando suas coordenadas cartesianas na forma (a, b), onde a era a parte real do número complexo e b era sua parte imaginária.

Novo comportamento

A partir do .NET 8, a representação de cadeia de caracteres do número complexo retornado por Complex.ToString exibe o número usando suas coordenadas cartesianas no formato <a; b>, onde a é a parte real do número complexo e b é sua parte imaginária.

Versão introduzida

.NET 8

Tipo de alteração interruptiva

Esta é uma alteração comportamental.

Motivo da alteração

A mudança para usar ponto e vírgula permite suporte à formatação com informações específicas da cultura. Também permite a necessidade correspondente de poder analisar os resultados, uma vez que implementa INumberBase<TSelf>.

A mudança de parênteses (( )) para colchetes angulares evita possível colisão com formatos numéricos onde números negativos são formatados como (x). O novo comportamento também é consistente com o comportamento dos tipos Vector*.

Se precisar do formato anterior, você pode usar um mecanismo de formatação de cadeia de caracteres personalizado, como $"({complex.Real}, {complex.Imaginary})", para produzir uma cadeia de caracteres nesse formato.

APIs afetadas