IFormattable.ToString无法正常工作hex格式
在尝试格式化为hex时,String.Format和IFormattable.ToString(format,value)提供了不同的结果。 使用IFormattable.ToString时如何获得正确的结果(格式,值)
string format = "0x{0:X4}"; Console.WriteLine(string.Format(format, 255)); //prints- 0x00FF IFormattable formattableValue = (IFormattable)255; Console.WriteLine(formattableValue.ToString(format, null)); //prints- 25x{5:X4}
格式化字符串的格式对于string.Format()
和ToString()
是不同的。 特别是, string.Format()
允许格式周围的其他文本,而IFormattable.ToString()
只允许文本本身的格式说明符。
在您的示例中,格式字符串"0x{0:X4}"
被视为值255的整个格式说明符0
是数字的占位符,其余的只是额外的字符文字。
如果您希望IFormattable.ToString()
输出与string.Format()
相同的内容,则必须以相同的方式使用它:
上述就是C#学习教程:IFormattable.ToString无法正常工作hex格式分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!
"0x" + formattableValue.ToString("X4", null);
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/cdevelopment/1021981.html