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*
.
Ação recomendada
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.