我正在从一个父对象创建一个子对象。场景是这样的,我有一个对象和一个子对象,其中子对象添加了一个距离属性,以便在需要搜索的情况下使用。由于我的用户界面可以与搜索对象或对象列表等效工作,而不是位置搜索结果,因此我选择使用继承。因此,在这种情况下,继承似乎是一个明智的选择。
目前,我需要从MyObject
的实例生成一个新的对象MyObjectSearch
。目前,我正在手动在构造函数中一个一个地设置属性来完成这个过程。我可以使用反射,但这会很慢。是否有更好的方法来实现这种对象增强?
希望下面的代码能说明问题:
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;
}