内容简介:翻译自:https://stackoverflow.com/questions/20398773/there-is-no-implicit-conversion-between-null-and-datetime
参见英文答案 > Conditional operator assignment with Nullable<value> types? 5个
下面的代码从给定的DataRow(modelValue)读取一个数据,并将其解析为可以为空的DateTime实例.
问题:请参阅L1&中的代码部分. L2两者在技术上相等(如果我没有造成任何小学生错误).但是,L1按预期工作,但不是L2.我正进入(状态
there is no implicit conversion between null and datetime
当我在L2下执行代码时.有人可以告诉我吗?
DateTime? CallBack; var callBackDate = modelValue["CallBack"] == DBNull.Value ? null : modelValue["CallBack"].ToString(); //Parsing DateTime cdate; if (!DateTime.TryParse(callBackDate, out cdate)) cdate = DateTime.MinValue; //L1 if (cdate==DateTime.MinValue) CallBack = null; else CallBack = cdate.Date; //L2 CallBack = cdate == DateTime.MinValue?null:cdate.Date;
(Z) ? X : Y
三元运算符要求从第二个操作数(X)到第三个操作数(Y)或从Y到X存在隐式转换.
由于null不能隐式转换为DateTime,也不能将DateTime转换为null,因此无法计算表达式.更多相关信息: Type inference woes by Eric Lippert .
你必须将null转换为DateTime?.通过这样做,X将是DateTime类型?和Y将是DateTime类型.由于存在从DateTime到DateTime?的隐式转换,因此可以计算表达式,并且它将返回DateTime?类型的值.
或者,按照相同的逻辑,您也可以将第三个操作数Y转换为DateTime?.
翻译自:https://stackoverflow.com/questions/20398773/there-is-no-implicit-conversion-between-null-and-datetime
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- golang 数据类型之间的转换
- 浅谈 Go 类型转换之间的那些事
- C++ 基类指针和派生类指针之间的转换
- DataURL 与 File,Blob,canvas 对象之间的互相转换
- Go语言的string和byte slice之间的转换
- c++中几种常见的类型转换。int与string的转换,float与string的转换以及string和long类型之间的相互...
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Algorithms Unlocked
Thomas H. Cormen / The MIT Press / 2013-3-1 / USD 25.00
Have you ever wondered how your GPS can find the fastest way to your destination, selecting one route from seemingly countless possibilities in mere seconds? How your credit card account number is pro......一起来看看 《Algorithms Unlocked》 这本书的介绍吧!