是DateTime.Parse COM依赖

时间:2011-12-24 14:16:12

标签: c# .net datetime com

我遇到了一条博客文章,声称DateTime.Parse依赖于COM。我无法找到这一陈述的确认证据。

如果是这种情况,我希望找到有关此文档的文档,最好来自Microsoft。

来源:http://blog.aasheim.org/2008/04/dont-use-datetimeparse-use.html

2 个答案:

答案 0 :(得分:4)

我相信你指的是this blog,其中说:

  

似乎很少有人知道DateTime.Parse()是COM   依赖,邪恶的。而且,即使在Microsoft.NET中也没有   保证DateTime.Parse()接受的字符串   机器在其他机器下是可以接受的基本上是DateTime.Parse()   适用于不介意不可预测行为的新手。

看来作者对词语的选择并不好;他们似乎试图警告读者的是DateTime.Parse文化 - 依赖 - 解析操作的成功/失败/结果将取决于当前的文化。这对于开发人员在尝试使用文化敏感/独立方式处理表示日期时间的文本时非常重要。

也就是说,Parse是否具有实际的COM依赖关系并不重要。由于没有直接记录,因此可以通过添加/删除COM依赖项来更改实现,恕不另行通知。

答案 1 :(得分:1)

是的,它取决于COM。来自this MSDN page

  

您可以使用两种解析方法来解析字符串:Parse和ParseExact。 Parse方法的功能植根于COM(它本身植根于旧版本的Visual Basic),无论成本如何,都会发生从字符串到日期的转换。不正确解析的风险是一个不幸的副作用,对于必须同时使用 dd / mm / yy mm / dd / yy 日期的人来说,这是一个可见的副作用。 Microsoft .NET Framework中的DateTime.Parse方法与其前身非常相似,但遗憾的是它遇到了一些相同的问题。代码较慢,因为额外的检查需要时间,并且总会有一些未正确检测到的新格式。在那些旧产品中,你可能还记得,这种行为有时被贬低地称为“邪恶的日期解析”。