我喜欢 C# 中的自动实现属性,但最近我的隔间里站着一头大象,我不知道该怎么处理他。
如果我使用自动实现的属性(以下简称“aip”),那么我不再有一个私有的支持字段可以在内部使用。这很好,因为 aip 没有副作用。但是如果以后我需要在 get 或 set 中添加一些额外的处理呢?
现在我需要创建一个支持字段,以便我可以扩展我的 getter 和 setter。这对于使用该类的外部代码来说很好,因为它们不会注意到差异。但是现在所有对 aip 的内部引用都将在访问属性时调用这些副作用。现在必须重构对曾经 aip 的所有内部访问以使用支持字段。
所以我的问题是,你们大多数人是做什么的?您是使用自动实现的属性还是更喜欢始终使用支持字段?您如何看待具有副作用的属性?