vb.net - 如何在VB.NET中从Object转换为Integer?

标签 vb.net string casting integer

如何在VB.NET中将Object转换为Integer

当我做:

Dim intMyInteger as Integer = TryCast(MyObject, Integer)


它说:


TryCast操作数必须是引用类型,但Integer是值类型。

最佳答案

TryCast等效于C#的as运算符。它是一个“安全强制转换”运算符,如果强制转换失败,则不会引发异常。而是返回Nothing(在C#中为null)。问题是,您不能将Nothingnull)(引用类型)分配给Integer(值类型)。没有Integer null / Nothing这样的东西。

而是可以使用TypeOfIs

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/

相关文章:

.net - 无论如何可以轻松地在 Visual Studio 2010 中移动整个方法 block

mysql - vb.net,mysql插入日期

C 中的 Cast 表达式语义

C++ - 动态绑定(bind)和对象实例不访问派生方法

java - 如何用不同的子字符串替换多个子字符串?

C++:将 std::function 转换为 gsl_function

wpf - WPF XAML 中的 My.Resources?

来自 DataTable 的 MySqlBulkLoader - VB.net

python - 使用正则表达式选择文本的特定部分

Java:使用 .split 进行重载分隔符(仅使用 charAt() 和 length())