我需要维护一个对象引用数组,并将每个项目传递给函数来管理它。我知道我可以这样做:
Dim arrObjs As MyObject[]
Dim refObj As MyObject
arrObjs.Add(New MyObject) 'First reference to the Object.
refObj=arrObjs[0] 'Second reference to the same Object.
我认为这是正确的,但是阅读Gambas对象模型文档,我读到当通过引用传递参数(ByRef)时,没有涉及指针。而是将值复制到函数内部,然后在函数完成后再次复制到函数外部。例如:
Sub manageObject(ByRef refObj As MyObject)
.....
End
通话时间:
manageObject(ByRef arrObjs[0])
如何在程序中管理对象的真实引用?有类似的东西吗?
Dim obj As New MyObject 'Correct
Dim objInstance As MyObject 'Correct
Dim refObj as Pointer 'Correct
refObj=varPtr(obj) 'NOT Correct, but i would like
objInstance=Object@(refObj) 'NOT Correct, but i would like
答案 0 :(得分:0)
一旦您使用NEW创建了对象,就可以使用该对象的方法和读/写属性:
arrObjs[0].method()
arrObjs[1].property=value
请参见object data type definition和带有array of objects的示例:
对象数组可以简单地由 public 数组共享。
使用 h 指针或引用时,您可以编写以下代码:
hinstance = arrObjs[0]
然后:
hinstance.method()