使用条件设置变量的类型

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)()