Почему выполнение свойства медленнее, чем выполнение поля или метода?

В CLR через CSharp глава 10 «Свойства» Джефф Рихтер пишет:

Для выполнения метода свойств может потребоваться много времени; доступ к полю всегда завершается немедленно. Типичная причина использования свойств - это выполнить синхронизацию потока, которая может остановить поток навсегда, и, следовательно, свойство не должно использоваться, если поток требуется синхронизация. В этой ситуации предпочтительнее использовать какой-либо метод. Кроме того, если к вашему классу можно получить удаленный доступ (например, ваш класс происходит от System.MarshalByRefObject), вызывая свойство будет очень медленным, поэтому метод предпочтительнее имущество. На мой взгляд, классы, производные от MarshalByRefObject никогда не следует использовать свойства.

Так ли это, даже если свойство определено так, чтобы просто возвращать частное поле? Почему для синхронизации предпочтительнее использовать метод ? и почему метод предпочтительнее в сценарии MarshalByRefObject?

Чтобы прояснить мой вопрос:
Джефф, похоже, делает общее заявление о том, что свойства не рекомендуется использовать, и что методы предпочтительнее в этих двух сценариях . как указал Джо Уайт, свойства могут иметь произвольный код. Но методы могут запускать один и тот же произвольный код. Это та часть, с которой у меня проблемы. Есть ли на самом деле преимущество в использовании методов перед свойствами (при условии, что используется один и тот же код) для синхронизации или маршалинга, или у него просто проблема с языковым соглашением?

10
задан Sonic Soul 6 February 2012 в 15:45
поделиться