Вы должны использовать отражение
public object GetPropertyValue(object car, string propertyName)
{
return car.GetType().GetProperties()
.Single(pi => pi.Name == propertyName)
.GetValue(car, null);
}
Если вы хотите быть по-настоящему модным, вы можете сделать это методом расширения:
public static object GetPropertyValue(this object car, string propertyName)
{
return car.GetType().GetProperties()
.Single(pi => pi.Name == propertyName)
.GetValue(car, null);
}
А затем:
string makeValue = (string)car.GetPropertyValue("Make");