Я создаю дочерний объект из родительского объекта. Таким образом, сценарий заключается в том, что у меня есть объект и дочерний объект, который добавляет свойство расстояния для сценариев, в которых я хочу выполнить поиск. Я решил использовать наследование, так как мой пользовательский интерфейс работает эквивалентно либо с объектом поиска, либо с перечнем объектов, а не результатом поиска местоположения. Поэтому в этом случае наследование кажется разумным выбором.
В настоящее время мне нужно создать новый объект MyObjectSearch
из экземпляра MyObject
. В настоящее время я делаю это в конструкторе вручную, задавая свойства один за другим. Я мог бы использовать рефлексию, но это было бы медленным. Есть ли лучший способ добиться такого рода улучшения объекта?
Надеюсь, мой код ниже иллюстрирует сценарий.
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;
}
}
И моя функция поиска:
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;
}