51Testing软件测试论坛

标题: 在类中如何定义一个数组呢,求高人帮忙! [打印本页]

作者: getfly    时间: 2008-5-9 14:42
标题: 在类中如何定义一个数组呢,求高人帮忙!
在类中如何定义一个数组呢,求高人帮忙!

我是想定义一个数据类型,用来传递数据。所以我用了类:
Class DAta

           Dim micuserName
           Dim micpassWord
           Dim micprojectList(9)
           ''''''Public micprojectList = CreateObject( "System.Collections.ArrayList")
           Dim micisSave

            Property Let userName(ByVal vData)
            micuserName = vData
        End Property
               
        Property Get userName()
            userName = micuserName
        End Property

               Property Let passWord(ByVal vData)
            micpassWord = vData
        End Property
               
        Property Get passWord()
            passWord = micpassWord
        End Property


''        Property Let projectList(ByVal vData, ByVal num)
''            micprojectList(num) = vData
''        End Property
''               
''        Property Get projectList(ByVal num)
''             projectList(num) = micprojectList(num)
''        End Property


               
                Function Print ( obj )
                   msgbox GetValue ( obj )
                End Function

                Function GetValue ( obj )
                   GetValue = micuserName&"Wang"&obj
                End Function

End Class

我用这个作为传递数据的容器。但是我不知道如何在类中定义一个数组。求高人帮忙!
或则有什么其它的传递数据的容器呢,请介绍一下。
作者: walker1020    时间: 2008-5-9 20:34
关于数组,先搜索一下以前的帖子吧,论坛上有类似的讨论
作者: getfly    时间: 2008-5-10 15:45
我找找过的, 都是关于类数组的介绍。 但是我想在一个类中定义一个数组,这样是可以的,就像第一行红字。 但是如给这个数组赋值。 walker1020,能帮帮忙吗?
作者: getfly    时间: 2008-5-10 15:47
你觉第二段红色的普分应该怎么写呢?
作者: hsjzfling    时间: 2008-5-10 16:55
一樣的啊。。。
Property Get projectList(ByVal num)
      projectList = micprojectList
End Property
作者: getfly    时间: 2008-5-11 11:34
楼上,你的意思是这样吗?请看代码:
Class Wang
           Dim micprojectList(9)

               Property Let projectList(ByVal num)
            micprojectList = vData
        End Property
               
        Property Get projectList()
            projectList = micprojectList
        End Property
'
'               
                Function Print ( obj )
                   msgbox obj
                End Function

End Class

   Set pp = New Wang

   pp.projectList(1) = "Hello Word"

   pp.Print(" Shou")
   
   Set pp = Nothing
但是, 这段代码无法调试通过,报错说:参数个数错误。请帮忙看看行吗,谢谢!
作者: hsjzfling    时间: 2008-5-11 13:25
貌似属性是不能为数组类型的,你需要再建一个属性来控制数组的index,然后再将传入的值赋给micprojectList(index),最后再给属性projectList,以后要取值的话,只要改变index属性即可。

当然,用做容器的话,可以看看dictionary的帮助
作者: getfly    时间: 2008-5-12 09:18
谢谢楼上的回复!
关于dictionary, 已经用过了,现在用的容器就是它,很好用的,就是里面的属性只有两个,而且其中的key不能重复。无法在同类数据很多的时候使用。
比如,你要加很多人到你的项目中, 可能关键字都是同一个,这样就没有办法用数据字典。比较遗憾那!




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2