我是C#程序员,但我正在将一些代码从C#转换为VB.NET。在c#中,我只需使用(int)blah.getValue()
getValue()
返回Integer?
在VB.NET中执行DirectCast()
不起作用,说Integer?
无法转换为Integer
。
想法?
答案 0 :(得分:8)
使用value属性获取实际的整数值。
Dim intNullable As Integer?
If intNullable.HasValue Then
Return intNullable.Value
End If
答案 1 :(得分:6)
整数?是可以为空的类型,因此您可能必须将其转换为可以为空的整数。
你想使用像这样的CType函数,'整数'或'整数?'根据您的具体情况而定
Val = CType(Source,Integer?)
答案 2 :(得分:1)
CINT(ValueToBeInteger)
答案 3 :(得分:0)
您应该使用CType这样的功能:
CType(blah.getValue(), Integer)
答案 4 :(得分:0)
dim a as integer? = 1
dim b as integer = a.value
请记住检查是否a.hasvalue(返回boolean,如果有值,则返回true)。
答案 5 :(得分:0)
myNonNullableVar = if(myNullableVar, 0)
如果是整数,会设置0吗?为null或返回实际值。
在C#中,它将是:
myNonNullableVar = myNullableVar ?? 0;
答案 6 :(得分:0)
如果使用CType或CInt或其他转换函数将可空整数转换为常规整数,则空值将转换为零。
检查可空类型是否具有@Rhapsody的答案中的值。
您还可以使用可空类型方法.GetValueOrDefault()
和.GetValueOrDefault(x)
。如果值为null,则不带任何参数的重载将返回数据类型的缺省值。例如。整数默认值为零;布尔默认值为False。带参数的重载允许您指定在值为null时使用的默认值。
答案 7 :(得分:-1)
@SLC:获取Nullable Int32的值非常简单? C#进入整数。
示例:
ID(Nullable<Int32?>)
你必须这样做: 的 ID.value 强>
其中ID是NullableObject。
它将在VB.NET中返回一个整数。