The format string format is different for string.Format()and for ToString(). In particular, string.Format()it allows the use of other text around the format, and IFormattable.ToString()only the format specifier allows for the text itself.
"0x{0:X4}" 255. 0 , - .
, IFormattable.ToString() , string.Format(), :
"0x" + formattableValue.ToString("X4", null);