使用条件设置变量的类型

时间:2015-08-14 09:01:51

标签: .net vb.net generics types late-binding

如何使用条件设置变量的类型?
如果我喜欢下面的示例,我的变量x在结束后不再存在,如果这是我的问题。

    If RequestedType = "Integer" Then
        Dim x As Integer
    Else
        Dim x As String
    End If

4 个答案:

答案 0 :(得分:0)

仅使用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,因为它们的范围不同。

答案 1 :(得分:0)

没有这种可能性。你宁愿使用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

答案 2 :(得分:0)

您可以声明一个方法,该方法接受您在调用它时定义的泛型返回类型。

这样的事情:

<body style="position:relative;">
	<div style="position:absolute;">
		<h2>DEMO</h2>
	</div>
	<div id="main" style="position:absolute;top:150px;">
		<ul style="padding-left:0px;">
		    <li id="slow_first">
		      <button onClick="OneBaloon()" class="button">DOM</button>
		    </li>
            <div style="height:100px;"></div>
		    <li>
		      <button onClick="PopUp()" class="button">ORIGINAL</button>
		      <img id="slow_first_div" src="http://s27.postimg.org/6xww0tj9f/baloon.gif"></img>
		    </li>
		</ul>
	</div>
</body>

你可以这样称呼它:

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

答案 3 :(得分:-3)

    Dim x    
    If RequestedType = "Integer" Then
        x = 0
    Else
        x = ""
    End If