Ste*_*ght 6 .net vb.net extension-methods
我有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
Run Code Online (Sandbox Code Playgroud)
我试图用这个来制作一个泛型函数,但是不能这样做.如何创建一个通用函数来获取特定的T并使其成为Nullable(T)?
jjx*_*tra 10
这里有一个相同的问题(在C#中):将字符串转换为可空类型(int,double等等)
Public Function ConvertString(Of T As Structure)(ByVal value As String) As System.Nullable(Of T)
Try
Return DirectCast(Convert.ChangeType(value, GetType(T)), T)
Catch
Return Nothing
End Try
End Function
Run Code Online (Sandbox Code Playgroud)