我是C#程序員,但將一些代碼從C#轉換爲VB.NET。在C#中,我可以簡單地使用(int)blah.getValue()
,其中getValue()
返回Integer?
如何轉換整數?在VB.NET中的整數?
做在VB.NET一個DirectCast()
雖然不工作,說Integer?
不能轉換爲Integer
。
想法?
我是C#程序員,但將一些代碼從C#轉換爲VB.NET。在C#中,我可以簡單地使用(int)blah.getValue()
,其中getValue()
返回Integer?
如何轉換整數?在VB.NET中的整數?
做在VB.NET一個DirectCast()
雖然不工作,說Integer?
不能轉換爲Integer
。
想法?
您應該使用CType功能如下:
CType(blah.getValue(), Integer)
使用value屬性獲取實際的整數值。
Dim intNullable As Integer?
If intNullable.HasValue Then
Return intNullable.Value
End If
+1。對於獎勵標記,添加一個拋出「InvalidOperationException」的Else子句,Nullable對象必須有一個值。「'這是C#(int)'cast轉換遇到'null'值時發生的情況。 – MarkJ
這是正確的答案。 (當您測試'.HasValue'時,一個Else子句是多餘的) – smirkingman
dim a as integer? = 1
dim b as integer = a.value
注意檢查a.hasvalue(返回boolean值,如果真有一個值)。
myNonNullableVar = if(myNullableVar, 0)
將設置0如果整數?爲空或返回實際值。
在C#,這將是:
myNonNullableVar = myNullableVar ?? 0;
CINT(ValueToBeInteger)
如果使用CTYPE或CINT或其他轉換功能可空整數轉換爲常規整數,一個空值都將被轉換爲零。
檢查可空類型是否具有@Rhapsody答案中的值。
您還可以使用可空類型方法.GetValueOrDefault()
和.GetValueOrDefault(x)
。如果值爲null,則不帶任何參數的重載將返回數據類型的默認值。例如。整數默認值爲零;布爾默認值是False。帶參數的重載允許您指定一個默認值,如果該值爲null,則使用該值。
@SLC:這是非常簡單的獲得空Int32的值?的C#轉換爲Integer。
例子:
ID(Nullable<Int32?>)
你要做的: ID.value
其中ID是NullableObject。
它會在VB.NET中返回一個整數。
提供的語言樣本看起來像是在C#中,並且OP特別要求VB.NET。我不確定此答案是否提供了有關此問題已有的豐富答案的任何其他信息。 – KyleMit
'Nullable
你爲什麼需要施放它?如果'getValue()'返回'Integer?',那麼'。Value屬性的類型是Integer。只需使用'blah.getValue()。Value'。或者也可以使用'blah.getValue()。GetValueOrDefault(<默認值here>)' –