如何转换整数?在VB.NET中转换为整数?
我是一名C#程序员,但正在将一些代码从C#转换为VB.NET。在c中,我可以简单地使用如何转换整数?在VB.NET中转换为整数?,vb.net,Vb.net,我是一名C#程序员,但正在将一些代码从C#转换为VB.NET。在c中,我可以简单地使用(int)blah.getValue()其中getValue()返回一个整数? 但是,在VB.NET中执行DirectCast()不起作用,说Integer?不能转换为Integer 想法?您应该使用如下函数: CType(blah.getValue(), Integer) 整数?是可为空的类型,因此您可能必须将其转换为可为空的整数 您想使用CType函数,如“Integer”或“Integer”,具体取决于
(int)blah.getValue()
其中getValue()
返回一个整数?
但是,在VB.NET中执行DirectCast()
不起作用,说Integer?
不能转换为Integer
想法?您应该使用如下函数:
CType(blah.getValue(), Integer)
整数?是可为空的类型,因此您可能必须将其转换为可为空的整数 您想使用CType函数,如“Integer”或“Integer”,具体取决于您的情况
Val = CType(Source,Integer?)
使用value属性获取实际整数值
Dim intNullable As Integer?
If intNullable.HasValue Then
Return intNullable.Value
End If
请记住检查a.hasvalue是否为布尔值(如果a有值,则返回true)
如果是整数,是否将设置为0?为null或返回实际值
在这方面,它将是:
myNonNullableVar = myNullableVar ?? 0;
CInt(ValueToBeInteger)如果使用CType或CInt或其他转换函数将可为空的整数转换为常规整数,则空值将转换为零 检查可空类型是否有@Rhapsody的答案中的值 您还可以使用可为空的类型方法
.GetValueOrDefault()
和.GetValueOrDefault(x)
。如果值为null,则不带任何参数的重载将返回数据类型的默认值。例如:整数默认值为零;布尔默认值为False。带有参数的重载允许您指定一个默认值,以便在该值为null时使用
@SLC:获取可为null的Int32的值非常简单?将C#的值转换为整数 例如:
ID(Nullable<Int32?>)
ID(可为空)
你必须做到:
ID.value
其中ID是一个NullableObject
它将在VB.NET中返回一个整数。CType将其排序为整数。谢谢-这个答案并不完全正确。null有不同的行为<如果
blah.getValue()
为null,则code>(int)blah.getValue()抛出异常CType(blah.getValue(),Integer)
如果blah.getValue()
为空,则返回零。+1。要获得额外分数,请添加一个Else子句,该子句抛出InvalidOperationException“可为null的对象必须有一个值。”这就是当C#(int)
强制转换遇到null
值时发生的情况。这是正确答案。(当您测试“.HasValue”时,Else子句是多余的。)提供的语言示例看起来像是用C#编写的,OP特别要求使用VB.NET。我不确定这个答案是否提供了更多关于这个问题的答案。Nullable
毫无意义。也许您想键入Nullable
(不带问号)?为什么需要强制转换它?如果getValue()
返回Integer?
,则.Value
属性的类型为Integer。只需使用blah.getValue().Value
。或者也可以使用blah.getValue().getValuerDefault()
myNonNullableVar = myNullableVar ?? 0;
ID(Nullable<Int32?>)