我理解属性相对于字段的优势,但我觉得使用自动实现的属性而不是手动实现的属性除了使代码看起来更简洁之外并没有真正提供任何优势。
我感觉使用起来更舒服:
private string _postalCode;
public string PostalCode
{
get { return _postalCode; }
set { _postalCode = value; }
}
代替:
public string PostalCode { get; set; }
主要是因为如果我想要对 get 和 set 进行任何类型的自定义实现,我就必须创建自己的属性,无论如何都由私有字段支持。那么,为什么不从一开始就咬紧牙关,立即赋予所有属性这种灵活性,以保持一致性呢?考虑到您在 Visual Studio 中所要做的就是单击您的私有字段名称,然后按 Ctrl+E,就完成了,这实际上不需要多花一秒钟。如果我手动执行此操作,那么最终会出现不一致,其中有一些由私有字段支持的手动创建的公共属性,以及一些自动实现的属性。我感觉好多了,因为它始终保持一致,无论是全自动还是全手动。
这只是我吗?我错过了什么吗?我是不是误会了什么?我是否过于强调一致性?我总能找到有关 C# 功能的合法讨论,并且几乎所有事物都有利有弊,但在这种情况下,我真的找不到任何人建议反对使用自动实现的属性。
除了简洁之外,它不会给你任何额外的东西。如果您更喜欢更详细的语法,那么请务必使用它。
使用 auto props 的一个优点是,它可以避免您犯下愚蠢的编码错误,例如意外地将错误的私有变量分配给属性。相信我,我以前就这么做过!
您关于自动道具不太灵活的观点是一个很好的观点。您拥有的唯一灵活性是使用private get
or private set
以限制范围。如果你的 getter 或 setter 有任何复杂性,那么 auto 道具就不再是一个可行的选择。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)