Warum die Verwendung von Clone()?
Was ist der Hauptzweck der Verwendung von Clone() in C#?
Was ist der Vorteil der Verwendung es?
Ist es nicht klar, aus Ihrer definition? 😉
Der Hauptzweck ist das erstellen einer Klon eines Objekts. Der Vorteil ist, dass die doppelte. Noch Fragen?
mögliche Duplikate von Warum sollte ich ICloneable implementieren in c#?
Der Hauptzweck ist das erstellen einer Klon eines Objekts. Der Vorteil ist, dass die doppelte. Noch Fragen?
mögliche Duplikate von Warum sollte ich ICloneable implementieren in c#?
InformationsquelleAutor What'sUP | 2011-03-26
Du musst angemeldet sein, um einen Kommentar abzugeben.
Die Idee ist, dass mit
Clone
können Sie erstellen ein neues Objekt vom gleichen Typ wie die, die Sie es aufrufen, auf, , ohne zu wissen, den genauen Typ des Objektes, das Sie aufrufen, es auf.Beispiel:
Hier
cloned
ist der gleiche runtime-Typ alsoriginal
, und Sie nicht brauchen, um zu wissen, was dieser Typ war der das Klonen.Jedoch die Nützlichkeit der
ICloneable
ist so ziemlich keiner, weil es nicht definiert, die Semantik der Klon-Vorgang: ist es ein flache Kopie oder eine Tiefe Kopie? Da die Schnittstelle nicht Mandat ein oder anderen, man kann nicht wirklich wissen, was Sie bekommen zurück. Und da zu wissen, dass ist wichtig, weil Sie in der Handhabung der Klon entsprechendICloneable
selbst ist ziemlich verbrannt Karte.Definieren Ihre eigene Benutzeroberfläche mit einem
Clone
Methode (mit klar definierten Semantik) macht viel Sinn, obwohl.Update: Siehe auch: Warum sollte ich ICloneable implementieren in c#?
InformationsquelleAutor Jon
Clone()
in der Regel bietet die flachen Kopie eines Objekts (d.h. sehen Array.Clone () - ), kopiert es die Verweise, aber nicht die referenzierten Objekte.Es ist praktisch, wenn Sie verstehen, Ihre Grenzen, vor allem, dass die Semantik von dem, was tatsächlich kopiert wird, um in dem neuen Objekt sind meist Links, um die Durchführung der
Clone()
- Methode, da die SchnittstelleICloneable
definiertthe Clone()
Methode ist unter-angegeben (es könnte also eine flache Kopie oder eine Tiefe Kopie, aber Sie können nicht Sie verlassen sich auf entweder).InformationsquelleAutor BrokenGlass
Wenn wir den Inhalt kopieren von einem Objekt zu einem anderen (SomeClass obj2 = obj1), obj2 auch die Zugehörigkeit zu der gleichen Klasse, das ändern der Inhalte von obj2 verändert auch den Inhalt von obj1. Dies ist, weil Sie sind Referenz-Typen. Mit Clone () die (in geeigneter Weise) können dies vermeiden. Zum ändern eines geklonten Objekt , das original wird nicht modifiziert.
InformationsquelleAutor Maitri