gpt4 book ai didi

c# - 从基本系统类型到字符串的转换是否可逆?

转载 作者:行者123 更新时间:2023-11-30 15:32:31 25 4
gpt4 key购买 nike

当在字符串中存储一个对象时,我能否确保将其转换回成功执行是否取决于其他因素?

DateTime dt = DateTime.UtcNow;
string pattern = dt.ToString();
DateTime retDt = DateTime.Parse(pattern);

这个问题问的是以下对象类型:

  • 时间跨度
  • 日期时间
  • 内部
  • 漂浮

我已尝试阅读多个论坛,但没有看到任何矛盾的例子。我也没有从我的代码中得到任何异常,但我确信我还没有尝试所有可能的输入/场景。

最佳答案

当使用 ToString 时,您可以为数字和时间指定一种格式(有关更多信息,请参阅 this topic)。

在许多这些情况下,您希望使用的格式是往返格式(“R”表示 Single、Double 和 BigInteger 类型,“O”表示 DateTime。)这种格式确保所有信息都传递给字符串,并且可以解析回完全相同的数据。

IFormatProvider 传递给 ToString 对于避免语言环境问题也是必不可少的(例如,不同的语言环境可以使用不同的字符作为小数点分隔符。)使用静态 CultureInfo.InvariantCulture 解决了这个问题。

最后,如果您尝试持久化数据然后检索它,您可能需要考虑使用序列化器,它接受整个类并将它们写入各种格式。 .NET 有几个序列化程序,其中两个最突出的是 BinaryFormatter(二进制)和 DataContractSerializer(XML)。

关于c# - 从基本系统类型到字符串的转换是否可逆?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18941833/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com