public class SuperCar: Car
{
public bool SuperWheels { get {return true; } }
}
public class Car
{
public bool HasSteeringWheel { get {return true;} }
}
如何设置派生的Supercar的基类?
例如,我想像这样简单地设置SuperCars基类:
public void SetCar( Car car )
{
SuperCar scar = new SuperCar();
car.Base = car;
}
基本上,如果我有Car对象,我不想手动遍历汽车的每个属性来设置SuperCar对象,我认为这是唯一的方法,但是如果可以用其他方法进行操作会好得多。
最佳答案
我在子类中使用了类似的方法,对我来说很好用:
using System.Reflection;
.
.
.
/// <summary> copy base class instance's property values to this object. </summary>
private void InitInhertedProperties (object baseClassInstance)
{
foreach (PropertyInfo propertyInfo in baseClassInstance.GetType().GetProperties())
{
object value = propertyInfo.GetValue(baseClassInstance, null);
if (null != value) propertyInfo.SetValue(this, value, null);
}
}