Если смотреть в вакууме, в этой практике нет ничего плохого. Тем не менее, вы должны быть осторожны в этом ...
- Получатели свойств должны - за небольшим (если есть) исключением - не быть «дорогими» (т. Е. Не должны потреблять много циклов ЦП или ресурсов для выполнения)
- Собственники не должны НИКОГДА вызывать побочные эффекты. Например, если ваш код PInvoke получает новый дескриптор, он должен быть функцией, а не получателем.
В общем, имейте в виду, что свойства должны быть написаны таким образом, чтобы у потребителя не было особых причин для кеширования значения, а не повторного вызова свойства. Если ответственный разработчик может следовать этой практике с вашей собственностью, то вы на правильном пути.