Я мог бы прийти сюда немного поздно, но только в том случае, если кто-то сочтет это полезным:
Вы можете использовать рефлексию.Требуется немного больше кода, чем вы предлагали, но я думаю, что он все еще предлагает краткость, которую вы ищете.
public SuperCar(Car car)
{
var props = typeof(Car).GetProperties().Where(p => !p.GetIndexParameters().Any());
foreach (var prop in props)
{
if (prop.CanWrite)
prop.SetValue(this, prop.GetValue(car));
}
// Set SuperCarcentric properties
// .
// .
// .
}
Я написал это явно из вашего примера, чтобы ясно проиллюстрировать концепцию, но я думаю,Лучше всего сделать общий метод, который можно использовать во всех подобных случаях вашего решения.
Надеюсь, это поможет.