Я хотел бы узнать больше о контексте, в котором он вам нужен, поскольку мне кажется, что вы уже должны знать, с каким свойством вы работаете в аксессоре свойств. Однако, если вы должны это сделать, вы можете использовать MethodBase.GetCurrentMethod () .Name и удалить что-либо после get_/set_
.
.
Обновление
Исходя из ваших изменений, я бы сказал, что вы должны использовать наследование, а не рефлексию. Я не знаю, какие данные есть в вашем словаре, но мне кажется, что вы действительно хотите иметь разные классы Car, скажем, Sedan, Roadster, Buggy, StationWagon, а не хранить тип в локальной переменной. Тогда у вас будут реализации методов, которые делают правильные вещи для этого типа автомобилей. Вместо того, чтобы выяснить, какая у вас машина, а затем что-то делать, вы просто вызываете соответствующий метод, и объект Car делает правильные вещи, основываясь на том, какой это тип.
public interface ICar
{
void Drive( decimal velocity, Orientation orientation );
void Shift( int gear );
...
}
public abstract class Car : ICar
{
public virtual void Drive( decimal velocity, Orientation orientation )
{
...some default implementation...
}
public abstract void Shift( int gear );
...
}
public class AutomaticTransmission : Car
{
public override void Shift( int gear )
{
...some specific implementation...
}
}
public class ManualTransmission : Car
{
public override void Shift( int gear )
{
...some specific implementation...
}
}