使用条件设置变量的类型
Set type of a variable using a condition
如何使用条件设置变量的类型?
如果我确实喜欢下面的示例,我的变量 x
在结束后不再存在,这是我的问题。
If RequestedType = "Integer" Then
Dim x As Integer
Else
Dim x As String
End If
仅使用 Dim
来声明变量。它将自动设置为您分配的值类型;
Dim x=10 '<--- here x is an integer type
Dim y="10"'<-- here y is of type string
Dim z=10.362'<-- here z is of type double
如果你按照你在问题中所说的声明,你的声明是有效的,你可以使用 x
作为 string
以及 integer
因为它们在不同的范围内。
没有这种可能。你宁愿使用Overloading of Methods。
我猜你会用 x
做一些处理。例如,您可以调用重载的子例程,在 x
.
上进行处理
Function ProcessMe(ByVal p_X As String) As Integer ' I assume you would return an Integer...
' Write here the processing on parameter p_X
End Function
Function ProcessMe(ByVal p_X As Integer) As Integer
' Call the previous method with p_X converted to string
Return ProcessMe(p_X.ToString())
End Function
然后,您可以在代码中编写
If RequestedType = "Integer" Then
Dim x As Integer
ProcessMe(x)
Else
Dim x As String
ProcessMe(x)
End If
Dim x
If RequestedType = "Integer" Then
x = 0
Else
x = ""
End If
您可以声明一个方法,该方法接受您在调用它时定义的泛型 return 类型。
像这样:
Public Function GetDbValue(Of T)() As T
Dim value As T = CType(GetYourValueHere, T)
Return value
End Function
你可以这样称呼它:
Dim s As String = GetDbValue(Of String)()
或
Dim i As Integer = GetDbValue(Of Integer)()
如何使用条件设置变量的类型?
如果我确实喜欢下面的示例,我的变量 x
在结束后不再存在,这是我的问题。
If RequestedType = "Integer" Then
Dim x As Integer
Else
Dim x As String
End If
仅使用 Dim
来声明变量。它将自动设置为您分配的值类型;
Dim x=10 '<--- here x is an integer type
Dim y="10"'<-- here y is of type string
Dim z=10.362'<-- here z is of type double
如果你按照你在问题中所说的声明,你的声明是有效的,你可以使用 x
作为 string
以及 integer
因为它们在不同的范围内。
没有这种可能。你宁愿使用Overloading of Methods。
我猜你会用 x
做一些处理。例如,您可以调用重载的子例程,在 x
.
Function ProcessMe(ByVal p_X As String) As Integer ' I assume you would return an Integer...
' Write here the processing on parameter p_X
End Function
Function ProcessMe(ByVal p_X As Integer) As Integer
' Call the previous method with p_X converted to string
Return ProcessMe(p_X.ToString())
End Function
然后,您可以在代码中编写
If RequestedType = "Integer" Then
Dim x As Integer
ProcessMe(x)
Else
Dim x As String
ProcessMe(x)
End If
Dim x
If RequestedType = "Integer" Then
x = 0
Else
x = ""
End If
您可以声明一个方法,该方法接受您在调用它时定义的泛型 return 类型。
像这样:
Public Function GetDbValue(Of T)() As T
Dim value As T = CType(GetYourValueHere, T)
Return value
End Function
你可以这样称呼它:
Dim s As String = GetDbValue(Of String)()
或
Dim i As Integer = GetDbValue(Of Integer)()