2014-01-28 25 views
0

從數組返回對象我一直在尋找在線的方式,使一個VBScript函數返回一個對象,我創建:的VBScript - 通過功能

<% 

dim myArray(5) 
set myArray(5) = new MyClass 

for i = 0 to 5 
response.write("i :" & i & "<br/>") 
set myArray(i) = new MyClass 
myArray(i).MyText = "Number " & i 
next 

class MyClass 

    public MyText 

End class 

function getMyClass(text) 

    set getMyClass = new MyClass 
    getMyClass.MyText = text 

end function 


    response.write(getmyclass("Here!").mytext & "<br/>") 

function getMyArray(number) 

    response.write("check: " & myArray(number).MyText & "<br/>") 
    set getMyArray = new MyClass 
    getMyArray = myArray(number) 

end function 

    response.write(getMyArray(1).mytext) 

%> 

這是我得到的錯誤:

Microsoft VBScript運行時錯誤 '800A01B6'

對象不支持此屬性或方法

/轉盤類/ funcarray.asp,線32

它指的是功能「getMyArray(數字)」

回答

1

我不得不重新編寫這使它工作...

<% 

dim myArray(5), i 

for i = 0 to 5 
    response.write("i :" & i & "<br/>") 
    set myArray(i) = new MyClass 
    myArray(i).MyText = "Number " & i 
next 

class MyClass 

    public MyText 

End class 

function getMyClass(text) 
    dim rv 
    set rv = new MyClass 
    rv.MyText = text 
    set getMyClass = rv 
end function 

response.write(getmyclass("Here!").mytext & "<br/>") 

function getMyArray(number) 
    response.write("check: " & myArray(number).MyText & "<br/>") 
    set getMyArray = myArray(number) 
end function 

response.write(getMyArray(1).mytext) 

%> 

注:

我刪除第二行它不會做你的想法。

我發現getMyClass函數的問題在於,只要函數名稱爲Set,那麼返回該值並且不會將值傳遞給MyText字段。

第二個函數幾乎在那裏,只需要函數名稱爲Set到預定義的數組條目之一。

+0

這是非常有幫助的。 非常感謝! – user3243936