0

インターネットで数時間探していますが、関数にコレクション byval を渡すことができるかどうかわかりませんか?

以下に例を示します。ご覧のとおり、関数 ObjPtr は同じ long ポインターを返すため、ByVal 引数にもかかわらず、collTemp と myCollection は同じです。

誰にもアイデアがありますか?

私のコード:

private sub function1

  dim myCollection as new collection

  call myFunction(mycollection)

  'For example, ObjPtr(myCollection) = 123456
end sub

'in another class
private sub myFunction(ByVal collTemp as Collection)

   'some code
   'ObjPtr(collTemp) = 123456

end sub
4

3 に答える 3

2

オブジェクトは「参照によって」渡されたり、まったく渡されたりしません。渡すのはオブジェクト参照であり、これらは ByVal または ByRef に渡すことができます。

ByRef を 1 つ渡すと、プロシージャは、呼び出し元の参照が実際に参照するオブジェクトを変更できます。

新しい Collection インスタンスを返したい場合は、それを作成し、それへの参照を返します。

于 2013-09-21T05:03:30.353 に答える
-1

私は信じてByValおり、同じコンポーネント内でByRefは動作しません。Call同じことを試してください。Call

于 2013-09-20T13:45:11.790 に答える