Function 指向对象的指针。如何管理函数或过程中对对象的真实引用并将其返回?
我需要维护一个对象引用数组,并将每个项传递给函数来管理它。我知道我可以做这样的事情:Function 指向对象的指针。如何管理函数或过程中对对象的真实引用并将其返回?,function,pointers,arguments,gambas,Function,Pointers,Arguments,Gambas,我需要维护一个对象引用数组,并将每个项传递给函数来管理它。我知道我可以做这样的事情: 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对象模型文档时,我
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
使用新创建的对象创建后,可以使用此对象的方法和读/写属性:
arrObjs[0].method()
arrObjs[1].property=value
请参阅和带有:对象数组可以由公共数组共享。
使用handles或reference时,您可以编写以下内容:
hinstance = arrObjs[0]
然后:
hinstance.method()
请尝试在编写代码时使用代码块和内联代码块。请检查