Werte aus einem Objekt in ein anderes

Gehen wir davon aus, dass du diesen Aufruf das erste Mal siehst (b ist hier ein Objekt vom Typ Bimbo und mit relevanten Daten gefüllt):
C#:
Bimbo b2 = new Bimbo(b);
Bimbo b2 = b.Clone();
So, und jetzt sag mir (ohne zu wissen wie der Konstruktor implementiert ist), woran du erkennen willst, dass es sich um einen Copy-Constructor handelt? Der zweite Aufruf zeigt sofort, dass eine Kopie erstellt wird.

Und wenn du sagst, dass du im Clone genauso einen Vergleich implementieren kannst, dann ist das prinzipiell richtig, dann hast du als Entwickler der Klasse aber gewaltig danebengegriffen. Warum?

Die Methode Clone stammt vom ICloneable-Interface und ist für Kopien (die MSDN läßt sich da nicht so besonders zum Thema Shallow bzw. Deep Copies aus) gedacht. Für Vergleiche wäre Das Interface IComarable zu verwenden, wodurch die Methode CompareTo zu implementieren wäre.
 
Hallo nochmal.

Irgendwie klappt da nochwas nicht so wie es soll.

C#:
                    m_Creep[j].NextWaypoint = (Waypoint)m_Creep[j].PossibleWaypointsY[indexY].Clone();
Wieso klappt der Ausdruck nicht? Braucht ihr noch mehr Infos?
m_Creep ist ein Array einer Klasse. Diese Klasse hat eine Variable NextWaypoint auch von einer eigenen Klasse Waypoint her.

Nun will ich den Wert aus dem PossibleWaypoints-Array beim Index IndexY in NextWaypoint schreiben. Die Clone Methode sieht so aus:
C#:
            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;
            }

Ich bin so langsam echt am verzweifeln....


Viele Grüße,
Eroli


EDIT: KOmmando zurück - Ich habe nen Bug gefunden. Der Indexer ist immer um 1 zu hoch...sowas ist ja sowas von ärgerlich :rolleyes:
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück