Verweis auf gleiche Liste trotz .Copy()

Übersicht BlitzMax, BlitzMax NG Beginners-Corner

Neue Antwort erstellen

M0rgenstern

Betreff: Verweis auf gleiche Liste trotz .Copy()

BeitragFr, Mai 13, 2011 0:15
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo Leute,
Ich habe gerade ein kleines Problem:
Undzwar möchte ich eine TList kopieren.
Aber ich scheine den Befehl .Copy() wohl falsch zu verstehen:
Ich bin der Meinung, dass die Liste kopiert wird. Laut dem, was ich momentan aber Code, wird nur ein Zeiger auf die Liste gesetzt.
Hier der Code:
BlitzMax: [AUSKLAPPEN]
	Method Copy:TMovingScript()
Local SCript:TMovingScript = TMovingscript.Create()
SCript.tlLines = tlLines.Copy() 'HIER wird kopiert
SCript.tmsCurrentLine = TMovingScriptLine(SCript.tlLines.First())
SCript.iDifficulty = iDifficulty
DebugLog((tlLines.First() = SCript.tlLines.first())) 'HIER steht im Debuglog später 1
Return SCript
End Method


Ich verstehe nicht, warum DebugLog((tlLines.First() = SCript.tlLines.first())) 1 ergibt, wenn eine Kopie angefertigt wird. Das Verhalten des Spiels lässt auch darauf deuten, dass keine Kopie angefertigt wird, da man deutlich merkt, dass verschiedene Gegnerinstanzen das gleiche SCript benutzen.
Könnte mir jemand bitte den Copy Befehlö näher erklären, bzw mir sagen was ich wahrscheinlich falsch gemacht habe?

Lg, M0rgenstern

Xeres

Moderator

BeitragFr, Mai 13, 2011 0:23
Antworten mit Zitat
Benutzer-Profile anzeigen
Was erwartest du denn, was kopiert werden soll?
Modulcode:
BlitzMax: [AUSKLAPPEN]
Rem
bbdoc: Creates an identical copy of the list.
End Rem

Method Copy:TList()
Local list:TList=New TList
Local link:TLink=_head._succ
While link<>_head
list.AddLast link._value
link=link._succ
Wend
Return list
End Method
Neue Liste, gleiche Links - würde ich auch nicht anders erwarten.
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus
T
HERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld)

M0rgenstern

BeitragFr, Mai 13, 2011 8:28
Antworten mit Zitat
Benutzer-Profile anzeigen
Ahso okay.
Dann muss ich das anders machen.

Dankeschön.

Lg, M0rgenstern

Neue Antwort erstellen


Übersicht BlitzMax, BlitzMax NG Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group