我有3種類似功能的通用方法,即只改變基於數值類型:創建轉換字符串可空號
<Extension()> _
Public Function ToNullableShort(ByVal str As String) As Short?
Dim intReturn As Short
If Short.TryParse(str, intReturn) Then
Return intReturn
Else
Return Nothing
End If
End Function
<Extension()> _
Public Function ToNullableByte(ByVal str As String) As Byte?
Dim intReturn As Byte
If Byte.TryParse(str, intReturn) Then
Return intReturn
Else
Return Nothing
End If
End Function
<Extension()> _
Public Function ToNullableLong(ByVal str As String) As Long?
Dim intReturn As Long
If Long.TryParse(str, intReturn) Then
Return intReturn
Else
Return Nothing
End If
End Function
我試圖讓一個泛型函數出這一點,但不能做到這一點。我怎樣才能做一個通用的函數,將採取一個具體的T,並使其爲可空(T)?
這太糟糕了,沒有一個Convert.TryChangeType方法,這將避免在輸入字符串無效時不得不吃掉異常。 – jjxtra 2009-06-19 19:39:54