Hallo zusammen,
auf ein neues Problem
Ich habe die Klasse "Waypoint" wie folgt gestaltet:
Von der Klasse erstellen wir nun ein neues Objekt, das klappt auch - anfangs. Ich habs mal im Debugger verfolgt:
Hier der nötige Code-Ausschnitt:
In der ersten Forschleife innerhalb der anderen For-Schleife - also eigentlich der zweiten For-Schleife
hat das Objekt noch die richtigen Werte(Es handelt sich um ein Array). Im restlichen Anweisungsblock bleiben die Werte ebenfalls vorhanden.
In der zweiten - bzw dritten For-Schleife
werden mir von meiner Entwicklungsumgebung aber auf einmal die falschen Werte angezeigt - oder besser gesagt die Standardwerte(meistens nullen
)
Wie kann es sein, dass das Objekt ein paar Zeilen vorher noch seine Werte hatte und dann nicht mehr?! Das bleibt auch so - im ganzen folgenden Code-Block hat dieses Objekt nur noch seine unbrauchbaren Default-Werte...
Viele Grüße,
Eroli
auf ein neues Problem

Ich habe die Klasse "Waypoint" wie folgt gestaltet:
C#:
public class Waypoint : ICloneable
{
private int m_X;
private int m_Y;
private bool m_Vertical;
private int m_Changer = 1;
public int X
{
get
{
return m_X;
}
set
{
m_X = value;
}
}
public int Y
{
get
{
return m_Y;
}
set
{
m_Y = value;
}
}
public bool Vertical
{
get
{
return m_Vertical;
}
set
{
m_Vertical = value;
}
}
public int Changer
{
get
{
return m_Changer;
}
set
{
m_Changer = value;
}
}
public object Clone()
{
Waypoint clonedWaypoint = new Waypoint();
clonedWaypoint.X = this.X;
clonedWaypoint.Y = this.Y;
clonedWaypoint.Vertical = this.Vertical;
clonedWaypoint.Changer = this.Changer;
return clonedWaypoint;
}
}
Hier der nötige Code-Ausschnitt:
C#:
for (int j = 0; j <= m_Creep.Length - 1; j++)
{
for (int i = 0; i <= m_Creep[j].PossibleWaypointsX.Length - 1; i++)
{
if (m_Creep[j].PossibleWaypointsX[i].Y - m_Creep[j].Position.Y < differenceY)
{
differenceY = m_Creep[j].PossibleWaypointsX[i].Y - m_Creep[j].Position.Y;
indexY = i;
}
}
for (int i = 0; i <= m_Creep[j].PossibleWaypointsY.Length - 1; i++)
{
if (m_Creep[j].PossibleWaypointsY[i].X - m_Creep[j].Position.X < differenceX)
{
differenceX = m_Creep[j].PossibleWaypointsY[i].X - m_Creep[j].Position.X;
indexX = i;
}
}
[...]
}
In der ersten Forschleife innerhalb der anderen For-Schleife - also eigentlich der zweiten For-Schleife

In der zweiten - bzw dritten For-Schleife


Wie kann es sein, dass das Objekt ein paar Zeilen vorher noch seine Werte hatte und dann nicht mehr?! Das bleibt auch so - im ganzen folgenden Code-Block hat dieses Objekt nur noch seine unbrauchbaren Default-Werte...
Viele Grüße,
Eroli