c# - Object.GetType() 永远不是 System.DateTime?
问题描述
下面的代码行打印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;
为什么?
解决方案
row[2].GetType() is System.DateTime
不检查是否row[2]
是类型System.DateTime
,而是检查Type
返回的实例是否GetType()
是(显然不是)
只需使用
row[2] is System.DateTime
推荐阅读
- python - 返回包装函数时如何修复“NoneType”对象不可调用?
- mysql - 使用多个 BIT(1) 字段改进 Mysql 查询
- c# - 多声道音频 - C# NAudio Winforms
- python - 在 Pandas 中按日期范围内的 ID 对行进行分组
- c# - Xamarin SyncFusion,裁剪图像未正确传递?
- python - 在并行处理中使用对象并“重新启动”这些对象
- python - 从 Python 中的过程内部启动和停止进程
- python - 从导入的库(python-pptx)扩展类时遇到困难
- python - Pandas:从日期列中分离出多种时间格式
- reactjs - 单击复选框后如何测试某些元素是否正确启用/禁用?