2015-08-28 67 views
-2

我可以通過在代碼中再次聲明它來更改變量類型嗎?像...VB重新聲明爲不同的類型

Dim x As New DEV_CLASS 
If environment = "UAT" Then 
    Dim x As New UAT_CLASS 
End If 

x.something1 
x.something2 
x.something3 
+2

不,你不能。 – xxbbcc

+2

不,我建議你使用一個界面。 – TyCobb

+0

請努力發佈格式正確,語法正確的代碼。你發佈的內容甚至不會編譯。 VB沒有_EndIF_關鍵字。它有_End If_(帶空格)。 –

回答

2

由於@TyCobb指出,使用一個接口

Dim x As MyInterface 

If environment = "UAT" Then 
    x = New UAT_CLASS 
Else 
    x = New DEV_CLASS 
    'DirectCast(x, DEV_CLASS).SomeOtherDevMethod() 
End If 

x.Method1() 
x.Method2() 

類和接口定義:

Public Interface MyInterface 

    Sub Method1() 
    Sub Method2() 

End Interface 

Public Class DEV_CLASS 
    Implements MyInterface 

    Public Sub Method1() Implements MyInterface.Method1 

    End Sub 

    Public Sub Method2() Implements MyInterface.Method2 

    End Sub 

    Public Sub SomeOtherDevMethod() 

    End Sub 

End Class 

Public Class UAT_CLASS 
    Implements MyInterface 

    Public Sub Method1() Implements MyInterface.Method1 

    End Sub 

    Public Sub Method2() Implements MyInterface.Method2 

    End Sub 

End Class