Если значение someProperty дорого рассчитать, это потенциально может быть проблемой.
blockquote>Это то, что мы называем преждевременной оптимизацией. В редком случае, когда профилировщик говорит вам, что вычисление свойства настолько необычайно дорого, что его трижды, а не один раз оказывает значительное влияние на производительность, вы добавляете кеширование, как вы описываете. Но если вы не делаете что-то действительно глупое, как факторинговые простые числа или получаете доступ к базе данных в геттере, ваш код, скорее всего, имеет десяток худших недостатков в тех местах, о которых вы никогда не думали.
Мне также нравится проверять, чтобы видеть, присоединяется ли отладчик - при вызове Отладчика. Повреждение, когда нет никакого отладчика, это предложит пользователю, если они захотят присоединить того. В зависимости от поведения Вы хотите, можно хотеть назвать Отладчик. Повреждение (), только если (или если не) каждый уже присоединяется
using System.Diagnostics;
//.... in the method:
if( Debugger.IsAttached) //or if(!Debugger.IsAttached)
{
Debugger.Break();
}
Поместите следующее, где Вам нужен он:
System.Diagnostics.Debugger.Break();
http://msdn.microsoft.com/en-us/library/system.diagnostics.debugger.break.aspx
#if DEBUG
System.Diagnostics.Debugger.Break();
#endif
можно использовать System.Diagnostics.Debugger.Break()
для прерывания определенного места.. это может помочь в ситуациях как отладка сервиса.