tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
1
ZUGRIFFE
204
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Eroli Eroli ist offline Mitglied Gold
    Registriert seit
    Mar 2007
    Beiträge
    224
    Hallo zusammen,

    auf ein neues Problem

    Ich habe die Klasse "Waypoint" wie folgt gestaltet:
    Code csharp:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    
    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;
                }
            }
    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:
    Code csharp:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    
                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 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
     

  2. #2
    Eroli Eroli ist offline Mitglied Gold
    Registriert seit
    Mar 2007
    Beiträge
    224
    Kommando zurück - Ich habe (mal wiede ) gelabert.

    Es handelt sich natürlich um 2 versch. Objekte - der eine Buchstabe "X" bzw "Y" macht den Unterschied
     

Ähnliche Themen

  1. Werte $_SESSION['wert'] verloren
    Von quidnovi im Forum PHP
    Antworten: 18
    Letzter Beitrag: 09.05.07, 23:14
  2. Antworten: 1
    Letzter Beitrag: 02.06.06, 20:30
  3. Antworten: 2
    Letzter Beitrag: 04.10.04, 10:22
  4. Leuchtspur eines Objektes
    Von Firestriker im Forum Cinema 4D
    Antworten: 1
    Letzter Beitrag: 01.10.03, 17:20
  5. Antworten: 2
    Letzter Beitrag: 03.03.02, 17:45