C#Casting vs. Parse

Joh*_*ino 15 c# string datetime parsing casting

这对某些人来说似乎是不成熟的,但这个问题一直在唠叨我,当我写一些代码时,我想我会问.

以下哪项是c#中更好的代码,为什么?

((DateTime)g[0]["MyUntypedDateField"]).ToShortDateString()
Run Code Online (Sandbox Code Playgroud)

要么

DateTime.Parse(g[0]["MyUntypedDateField"].ToString()).ToShortDateString()
Run Code Online (Sandbox Code Playgroud)

最终,施放或解析是否更好?谢谢大家!

Wil*_*lka 12

如果g [0] ["MyUntypedDateField"]实际上是一个DateTime对象,那么转换是更好的选择.如果它不是真正的DateTime,那么你别无选择,只能使用Parse(如果你试图使用强制转换,你会得到一个InvalidCastException)

  • 当对象不是DateTime时,不要使用Parse,而是使用ParseExact并指定预期的日期和时间格式,以避免依赖于当前的用户文化设置.看看我对这个问题的回答. (2认同)