использовать свойство, когда какое-то свойство er .. быстродействующее (например, ctrl.Color, ctrl.Text, ctrl.Width, DateTime.Now). но если это означает процесс, используйте метод (например, str.GetHash(), machine.GetFqdn(), file.GetMd5()). поэтому в файле md5, вы не будете делать это свойство
это подчеркнет его наиболее when to use a method:
операция достаточно дорого, что вы хотите сообщить пользователю , что они должны рассмотреть кэширование результат.
обратите внимание, что .NET DateTime.Теперь, хотя быстрая, как есть, и свойство, нужно было кэшировать, когда он вызывается несколько раз в вашей программе, даже рядом друг с другом. они решили сделать это собственностью, свойство имеет ощущение текучесть в нем, в отличие от того, когда вы вызываете метод, у него нет ощущения мгновенность/текучесть в нем. поэтому вам нужно принять во внимание, что даже когда вы получаете значение и нужно кэшировать, но если ему нужно почувствовать мгновенный, обязательно используйте свойство.
В конце концов, если что-то действительно быстро и не похоже на дорогостоящую операцию, оно должно иметь конструкцию, которая может передать ее устойчивость. Я думаю, именно поэтому .NET привлекателен (или любой язык, на котором есть свойство), он не заставляет разработчиков использовать метод, когда вы можете сделать его свойством, он не заставляет разработчиков использовать метод, когда вы можете сделать код исполнения вокруг перегруженных операторов, это прагматическое программирование в лучшем случае
Не бросать исключения? Что бы вы сделали, если значение установлено как недопустимое значение? Я думал, что это была одна из причин использования свойств над полями ... возможность делать проверки на значение, прежде чем принимать его. – Svish