Najlepszy sposób na utworzenie instancji obiektu podrzędnego z obiektu nadrzędnego
Tworzę obiekt podrzędny z obiektu nadrzędnego. Scenariusz polega na tym, że mam obiekt i obiekt podrzędny, który dodaje właściwość odległości dla scenariuszy, w których chcę szukać. Wybrałem użycie dziedziczenia, ponieważ mój interfejs użytkownika działa podobnie z obiektem wyszukiwania lub listą obiektów, które nie są wynikiem wyszukiwania lokalizacji. Więc w tym przypadku dziedziczenie wydaje się rozsądnym wyborem.
Jako obecny muszę wygenerować nowy obiektMyObjectSearch
z instancjiMyObject
. Obecnie robię to ręcznie w konstruktorze, ustawiając właściwości pojedynczo. Mógłbym użyć odbicia, ale byłoby to powolne. Czy istnieje lepszy sposób na osiągnięcie tego rodzaju ulepszenia obiektu?
Mam nadzieję, że poniższy kod ilustruje scenariusz.
public class MyObject {
// Some properties and a location.
}
public class MyObjectSearch : MyObject {
public double Distance { get; set; }
public MyObjectSearch(MyObject obj) {
base.Prop1 = obj.Prop1;
base.Prop2 = obj.Prop2;
}
}
I moja funkcja wyszukiwania:
public List<MyObjectSearch> DoSearch(Location loc) {
var myObjectSearchList = new List<MyObjectSearch>();
foreach (var object in myObjectList) {
var distance = getDistance();
var myObjectSearch = new MyObjectSearch(object);
myObjectSearch.Distance = distance;
myObjectSearchList.add(myObjectSearch);
}
return myObjectSearchList;
}