在If Statement中转换

时间:2015-10-27 23:23:43

标签: vb.net

是否可以从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

2 个答案:

答案 0 :(得分:0)

如果您要使用Visual Basic进行强制转换,则必须使用DirectCast,甚至可能使用CType函数。

(DriversLicense_Expiry as DateTime)确实是一个无效的语句,因为As关键字仅在声明变量时使用。

DirectCastCType函数的结构是:

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)