我目前正在与一个旧的 api 作斗争,我面临以下问题:当我尝试将一个对象强制转换为一个对象数组时,当值是可为空的日期时,我得到运行时异常。
Module Module1
Sub Main()
Console.WriteLine(Misc.dateCast(New Nullable(Of DateTime)()))
Console.WriteLine(Misc.tabledateCast(New Nullable(Of DateTime)() {New DateTime()}))
End Sub
End Module
Module Misc
Function dateCast(ByVal val As Nullable(Of DateTime)) As Object
Return CType(val, Object)
End Function
Function tabledateCast(ByVal val As Object) As Object()
Return CType(val, IEnumerable(Of Object)).Cast(Of Object).ToArray
End Function
End Module
第一个演员正在工作,但不是第二个。如何成功转换为对象数组?
我不能使用CType(val, IEnumerable(Of Nullable(Of DateTime)))
,因为该函数可能会获取其他类型的数组。