Avatar billede Simon Praktikant
26. marts 2004 - 07:59 Der er 11 kommentarer og
1 løsning

lave kopi og ikke reference af objekt.

Hej, jeg har et objekt, som jeg gerne vil kopiere.
Herefter vil så lave nogle beregninger ved originalen, og hvis de fejler vil jeg så kopiere kopien til originalen igen.
----------------------------------
Klassenavn objSikkerhedskopi = objOriginal;
//lave beregninger
//hvis de går galt
objOriginal = objSikkerhedskopi;
//alt burde igen være ved det gamle :-)
----------------------------------------

Men for mig ser det ud til at objSikkerhedskopi blot er en reference til objOriginal.
Er det rigtigt?
Hvordan kopierer jeg den i steddet for?
Avatar billede arne_v Ekspert
26. marts 2004 - 08:02 #1
Det er rigtigt.

Prøv:

Klassenavn objSikkerhedskopi = objOriginal.Clone();
Avatar billede arne_v Ekspert
26. marts 2004 - 08:03 #2
Forudsætter at Kassenavn implementerer ICloneable, men ellers er du out of luck
Avatar billede Simon Praktikant
26. marts 2004 - 08:07 #3
Klassenavn er en klasse som jeg selv har skrevet, hvordan får jeg den til at implementere ICloneable?
Avatar billede arne_v Ekspert
26. marts 2004 - 09:19 #4
Du arver fra ICloneable og laver en Clone metode.
Avatar billede burningice Nybegynder
26. marts 2004 - 09:39 #5
man kan også bruge MemberwiseClone()
Avatar billede arne_v Ekspert
26. marts 2004 - 09:49 #6
Jeg troede faktisk at den var beregnet til at implementere Clone med
(den er jo protected).
Avatar billede burningice Nybegynder
26. marts 2004 - 10:14 #7
arne_v>> tjo... man kan vel bruge den til det... det er dog ikke det de har gjort i kode-eksemplet i SDK'et. Det er også noget med at den kun laver Shallow Copy. Hvis man vil have en Deep Copy skal man implementere det selv.
Avatar billede arne_v Ekspert
26. marts 2004 - 10:52 #8
I kode eksemplet i SDK docs bruges den i selve klassen. Men det er vel lidt
et special tilfælde.

Jeg ser den som en nem måde at Implementere Clone på.

Og ja det er en shallow copy, så den kan kun bruges i dette tilfælde,
hvis de members der rettes er values og ikke referencer (simple data typer
ikke objekter).
Avatar billede arne_v Ekspert
26. marts 2004 - 21:10 #9
Med hensyn til shallow versus deep clone lavede jeg et eksempel her:
  http://www.eksperten.dk/spm/482398
Avatar billede Simon Praktikant
07. april 2004 - 12:53 #10
hvis du lige svarer får du points
Avatar billede arne_v Ekspert
07. april 2004 - 13:02 #11
svar
Avatar billede arne_v Ekspert
24. april 2004 - 18:29 #12
Så mangler du kun at acceptere svaret
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester

IT-JOB

Forsvarsministeriets Materiel- og Indkøbsstyrelse

Cyberdivisionen søger AI forretningskonsulent i Ballerup

Politiets Efterretningstjeneste

IT-frontdesk medarbejder til PET's IT Servicedesk

Everllence

Software Engineer

Forsvarsministeriets Materiel- og Indkøbsstyrelse

Ingeniør til Satellitkommunikation