我明白PROPERTIES超过FIELDS的优点,但我觉得使用AUTO实现的属性而不是MANUAL实现的属性并没有真正提供任何优势,除了使代码更简洁一些以外。使用自动实现的属性超过手动实现的属性的任何原因?
我感觉舒服多用:
private string _postalCode;
public string PostalCode
{
get { return _postalCode; }
set { _postalCode = value; }
}
相反的:
public string PostalCode { get; set; }
主要是因为如果我想要做的任何种类的获取和设置的自定义实现的,我要创建无论如何由私人领域支持我自己的财产。那么为什么不从一开始就咬住子弹,并立即给予所有属性这种灵活性,以保持一致性?考虑到您在Visual Studio中所做的所有操作都是单击您的专用字段名称,然后按Ctrl + E,即可完成,但这并不需要额外的时间。如果我手动执行,那么最终会出现不一致性,其中有一些由专用字段支持的手动创建的公共属性,以及一些自动实现的属性。无论是全自动还是全部手动,我都感觉好多了。
这是我吗?我错过了什么吗?我误解了什么吗?我是否过分强调一致性?我总是可以找到关于C#特性的合法讨论,几乎总是有优点和缺点,但在这种情况下,我确实找不到任何推荐使用自动实现属性的人。
你说你现在可以这样做 - 因为将来你可能必须这样做。为什么浪费时间做一些容易出错的东西(你可能最终会复制和粘贴),只有在需要时才能做到这一点? – Rob
感谢罗布。我的推理是,使用Visual Studio,只需一次额外的按键即可创建手动实现的属性,因此不会复制/粘贴。如果有一天我确实需要创建自己的实现,那么我不会在自动实现的属性和手动实现的属性之间产生分歧,它是100%或100%。通过从一开始就充分利用手册,我可以随时创建自己的实现,而无需自动实现某些属性,并且某些属性是手动的。当然,我明白你的观点。 – CptSupermrkt
在这种情况下,我和你一起坚持100%的手动执行。在VS 2010(至少)中遇到手动获取/设置器 – Rob