【发布时间】:2013-09-22 08:28:10
【问题描述】:
当将对象存储在字符串中时,我能否确保将其转换回成功执行它是否依赖于其他东西?
DateTime dt = DateTime.UtcNow;
string pattern = dt.ToString();
DateTime retDt = DateTime.Parse(pattern);
这个问题询问以下对象类型:
- 时间跨度
- 日期时间
- int
- 长
- 浮动
- 双
我已经尝试阅读了几个论坛,但没有看到相互矛盾的例子。我也没有 从我的代码中得到任何异常,但我确信我还没有尝试所有可能的输入/场景。
【问题讨论】:
-
你想解决什么具体问题?
-
@SpencerRuport - 我仅限于将这些对象类型存储到两个字符串变量 - 模式和格式。我需要能够将它们转换回来。
-
@Yosi 它取决于 结构(它包含多少信息?)、被覆盖的
ToString()和解析器Parse。DateTime和TimeSpan很难说,但我们只需要深入研究它们的结构即可得到答案。 -
Yosi 如果您只需将所有这些类型存储为字符串,我认为更可靠的解决方案是将它们二进制序列化并将它们转换为 Base64 编码,以便您可以将它们存储为字符串。有什么不可行的原因吗?
-
@SpencerRuport - 这不会降低代码的可读性吗?只有在不安全的情况下,我才会将其作为一种选择。
标签: c# type-conversion