如何在VB.NET中将Object
转换为Integer
?
当我做:
Dim intMyInteger as Integer = TryCast(MyObject, Integer)
它说:
TryCast操作数必须是引用类型,但Integer是值类型。
最佳答案
TryCast
等效于C#的as
运算符。它是一个“安全强制转换”运算符,如果强制转换失败,则不会引发异常。而是返回Nothing
(在C#中为null
)。问题是,您不能将Nothing
(null
)(引用类型)分配给Integer
(值类型)。没有Integer
null
/ Nothing
这样的东西。
而是可以使用TypeOf
和Is
:
If TypeOf MyObject Is Integer Then
intMyInteger = DirectCast(MyObject, Integer)
Else
intMyInteger = 0
End If
该测试可查看
MyObject
的运行时类型是否为Integer
。有关更多详细信息,请参见MSDN documentation on the TypeOf
operator。您也可以这样写:
Dim myInt As Integer = If(TypeOf myObj Is Integer, DirectCast(myObj,Integer), 0)
此外,如果不适合使用具有默认值(如0)的整数,则可以考虑使用
Nullable(Of Integer)
类型。
关于vb.net - 如何在VB.NET中从Object转换为Integer?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13151196/