【发布时间】:2011-04-08 02:18:27
【问题描述】:
我经常使用自动属性,但我越来越远离设置具有在构造函数中初始化的只读支持字段的类。我删除了所有设置器,并且仅在属性明确需要设置器时才添加后面。
我发现这让我的课程更加健壮和优雅,OO 明智,我为自己没有早点这样做而自责。
我发现构造函数在 c# 代码示例中通常没有得到充分利用,我认为自动属性和对象初始化器是其中很大一部分,所以我的问题是为什么 c# 团队会推动这样的特性,而不是更多地关注交付具有更多推动最佳实践的功能。一般来说,我认为编写糟糕的代码太容易了,并且相信可以做更多的事情来帮助程序员编写好代码
【问题讨论】:
-
并非所有类型都必须是不可变的。在构造函数中采用可变类型,然后将其复制到私有成员是非常常见的(也是有益的)。然后通过外部代码屏蔽它的变化(假设它对任何可变依赖项做同样的事情)。对于普通的旧数据对象尤其如此。
标签: c# automatic-properties object-initializers