2016-06-04 14 views
0

Angenommen, die Eigenschaft eines Objekts verweist während seiner Lebensdauer auf andere Objekte.C# Objektverweis auf die Eigenschaft eines anderen Objekts

MyClassInstance.MyProperty = MyOtherObject1; 

später in der Anmeldung erhalte ich diese:

MyClassInstance.MyProperty = MyOtherObject2; 

Und so weiter. Mein Verständnis ist, dass MyOtherObject1 und MyOtherObject2 auf die gleiche Adresse im Speicher zeigen, die ich vermeiden möchte. Wie kann ich sicherstellen, dass MyOtherObject1 und MyotherObject2 zwei völlig verschiedene Entitäten sind?

+0

Ich verstehe nicht ... Die Einstellung _property_ auf 'MyOtherObject2' verbindet es nicht mit' MyOtherObject1'. Oder was meinst du? Sie zeigen nur auf die gleiche Speicheradresse, wenn sie Klassen sind und Sie tun: ' MyOtherObject2 = MyOtherObject1;'. –

+1

Ich denke, dein "Problem" ist hier imaginär. –

Antwort

2

Wenn MyOtherObject1 und MyOtherObject2 unterschiedliche Objekte sind, wird die MyClassInstance.MyProperty mit ihnen gleichgesetzt, so dass diese 2 nicht identisch sind.

MyClassInstance.MyProperty = MyOtherObject1; 

Das bedeutet, alle Änderungen an MyClassInstance.MyPropertyMyOtherObject1 ändern werden, da sie effektiv auf den gleichen Speicherraum verweisen.

MyClassInstance.MyProperty = MyOtherObject2; 

Dies bedeutet, dass MyProperty nun auf den gleichen Speicherplatz wie MyOtherObject2 zeigt. Änderungen an MyProperty werden MyOtherProperty1 unberührt lassen.

Verwandte Themen