Object.GetType()永远不是System.DateTime吗?

时间:2018-10-07 16:57:19

标签: c#

下面的代码行显示System.Datetime

log.InfoFormat("{0}", row[2].GetType());

但是在以下情况下,row[2].GetType()决不等于System.DateTime

f.TestDate = (row[2].GetType() is System.DateTime) ? f.TestDate = (System.DateTime)row[2] : f.TestDate = DateTime.MinValue;

为什么?

2 个答案:

答案 0 :(得分:5)

row[2].GetType() is System.DateTime

不检查row[2]是否为System.DateTime类型,而是检查Type返回的GetType()实例是否为(显然不是)

只需使用

row[2] is System.DateTime

答案 1 :(得分:0)

您应该使用:

row[2].GetType() == typeof(DateTime)

row[2] is DateTime