Mam coś podobnego do tego:C#: Czy podczas dodawania tego samego obiektu do dwóch zmiennych z listy <object> obiekt jest klonowany w procesie?
// Declarations:
List<SomeType> list1 = new List<SomeType>();
List<SomeType> list2 = new List<SomeType>();
...
SomeType something = new SomeType("SomeName");
list1.Add(something);
list2.Add(something);
...
list1[indexOfSomething] = new SomeType("SomeOtherName");
a obiekt w listy2 nie zmieniło ... Czy to oczekiwanego rezultatu?
Powiedzmy, że SomeType jest interfejsem, a moim celem jest aktualizacja obiektu do innej klasy, która dziedziczy interfejs (nie ten sam kod co powyżej, ponieważ nie można utworzyć interfejsu - mimo to techniczne), byłby jedynym sposobem aby znaleźć obiekt na obu listach i zastąpić je nowym obiektem? Czy jest jakiś inny sprytny sposób? –
"Sprytnym" sposobem byłoby posiadanie jakiegoś typu opakowania, które implementuje interfejs i deleguje do członka, który implementuje ten sam interfejs. Umieść opakowanie na obu listach, a następnie zaktualizuj obiekt, który opakowanie zawiera w jednym miejscu, a obie listy otrzymają aktualizację. –