2011-12-09 80 views
2

我想知道如何從外部腳本獲取公共屬性。測試代碼在下面,並且似乎使用此方法顯示tValue的空變量。從外部腳本獲取公共屬性的變量

有沒有我不在這裏做的事情?

'External Code 
Set nObj = New Test 
Response.Write(nObj.tValue) 

'The Class 
Class Test 
    Public Test1 

    Public Property Get tValue 
     tValue = Test1 
    End Property 

    Sub Loadit 
     Test1="123" 
    End Sub 
End Class 

回答

2

您的構造函數名稱不正確。傳統ASP中類的構造函數的默認名稱是Class_Initialize。在此基礎上,你的代碼應該是:

'External Code 
Set nObj = New Test 
Response.Write("tValue = " & nObj.tValue) 

'The Class 
Class Test 
    Private Test1 

    Public Property Get tValue 
     tValue = Test1 
    End Property 

    Public Sub Class_Initialize 
     Test1 = "123a" 
    End Sub 
End Class 

或者,如果你想使你的類的代碼,是,你應該改變你的外部代碼:

'External Code 
Set nObj = New Test 
nObj.Loadit 
Response.Write(nObj.tValue) 
+0

+1應該使'Test1''私有'以及。 – AnthonyWJones

+0

@AnthonyWJones謝謝,好點 - 修改 –

0

沒關係,因爲它不是首先調用Sub。

這固定了它。

'External Code 
Set nObj = New Test 

Call nObj.Loadit 

Response.Write(nObj.tValue) 
+0

呸! 1分鐘太晚:) –