Complex.ToString 格式已變更為
為了更妥善地支援使用特定文化特性資訊的格式化值,複數的預設字串表示已變更,以避免使用可用於格式化數值的字元。 這項變更會影響 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})" ,以該格式產生字串。