是否可以从if语句中转换对象?
以下代码显然无效:
' DriversLicense_Expiry is of type Object
If (DriversLicense_Expiry = Nothing OrElse (DriversLicense_Expiry as DateTime) > DateTime.Now) Then ...
我也试过像这样投,但是当它没有定义时会导致异常:
Dim dtDriversLicenceExpiry As DateTime = DriversLicense_Expiry;
有时候DriversLicense_Expiry
不会被定义为null
答案 0 :(得分:0)
如果您要使用Visual Basic进行强制转换,则必须使用DirectCast
,甚至可能使用CType
函数。
(DriversLicense_Expiry as DateTime)
确实是一个无效的语句,因为As
关键字仅在声明变量时使用。
DirectCast
或CType
函数的结构是:
DirectCast(<object to cast>, <type to cast to>)
话虽如此,这是一个正确的方法:
If DriversLicense_Expiry = Nothing OrElse DirectCast(DriversLicense_Expiry, DateTime) > DateTime.Now Then
答案 1 :(得分:-1)
你可以做这样的事情
If (DriversLicense_Expiry = Nothing OrElse
Convert.ToDateTime(DriversLicense_Expiry) > DateTime.Now)