ByRef Problem

25/11/2007 - 20:42 von Robert Hauffe | Report spam
Hallo,

folgende Sachen sind gegeben:

Dim obj As New SortedList(Of Integer, ObjClass)
Dim selectedObj As ObjClass
Dim clipboard As ObjClass
Dim mousePos as Point

obj ist mit Objekten gefüllt.
mousePos enthàlt die Mausposition, bei der in die Form geklickt wird

Nun mache ich folgendes:

selectedObj = obj(0)
clipboard = selectedObj
obj.Add(1, clipboard)
obj(1).location = mousePos

Problem:

Alle Werte werden als Referenz übergeben. D.h. dass zum Schluss obj(0)
und obj(1) mousePos als Position haben.

Wie kann ich das unterbinden? Nur obj(1) soll mousePos als Position
erhalten. Hat jemand eine Idee?

Robert
 

Lesen sie die antworten

#1 Alekszander Moses, Antifa-Rat Zureich
25/11/2007 - 22:32 | Warnen spam
On 25 Nov., 20:42, Robert Hauffe wrote:
Hallo,

folgende Sachen sind gegeben:

Dim obj As New SortedList(Of Integer, ObjClass)
Dim selectedObj As ObjClass
Dim clipboard As ObjClass
Dim mousePos as Point

obj ist mit Objekten gefüllt.



Wie wurde "obj" gefüllt?

mousePos enthàlt die Mausposition, bei der in die Form geklickt wird

Nun mache ich folgendes:

selectedObj = obj(0)
clipboard = selectedObj
obj.Add(1, clipboard)
obj(1).location = mousePos

Problem:

Alle Werte werden als Referenz übergeben. D.h. dass zum Schluss obj(0)
und obj(1) mousePos als Position haben.



Wenn mit obigem Code obj0 einen Wert erhàlt, der ur obj(1) zugewiesen
wurde, so ergibt das keinen Sinn, ausser es wàre adsselbe Objekt, dass
du mehrmals hinzugefügt hast.

Wir müssten sehen, wie du obj (ein Array?) auffüllst.

Ich grüsse Kerem, das Kamel.

Ähnliche fragen