【发布时间】:2010-03-16 18:21:43
【问题描述】:
我喜欢 C# 中的自动实现属性,但最近我的隔间里站着一头大象,我不知道该怎么处理它。
如果我使用自动实现的属性(以下简称“aip”),那么我将不再有可在内部使用的私有支持字段。这很好,因为 aip 没有副作用。但是如果以后我需要在 get 或 set 中添加一些额外的处理呢?
现在我需要创建一个支持字段,以便扩展我的 getter 和 setter。这对于使用该类的外部代码来说很好,因为它们不会注意到差异。但是现在所有对 aip 的内部引用都会在访问属性时调用这些副作用。现在必须重构对曾经 aip 的所有内部访问以使用支持字段。
所以我的问题是,你们大多数人都做什么?您是使用自动实现的属性还是更喜欢始终使用支持字段?您如何看待具有副作用的属性?
【问题讨论】:
-
是的,我知道人们以前也问过类似的问题。我确实使用了谷歌,以及专门搜索 StackOverflow,但我没有找到明确/令人满意的答案。所以我用自己的话提出了这个问题。
标签: c# properties automatic-properties