c# – 使用自动实现的属性超过手动实现的属性的任何理由?

我理解PROPERTIES比FIELDS的优点,但我觉得仿佛使用AUTO实现的属性超过MANUAL实现的属性并不真正提供任何优点,除了使代码更简洁看看它。

我觉得更舒服使用:

    private string _postalCode;

    public string PostalCode
    {
        get { return _postalCode; }
        set { _postalCode = value; }
    }

代替:

public string PostalCode { get; set; }

主要是因为如果我想做任何种类的get和set的自定义实现,我必须创建自己的属性,由私有字段支持。所以为什么不从一开始就咬住子弹,并给所有属性这种灵活性立即,一致性?这真的不需要,但额外的一秒,考虑到所有你必须在Visual Studio中单击您的私有字段名称,并按Ctrl E,你就完成了。如果我手动地做,那么我最终以不一致,其中有一些手动创建的公共属性支持的私有字段和SOME自动实现的属性。我感觉好多了,它是一致的四周,无论是所有汽车或所有手动。

这只是我吗?我缺少什么?我错了什么吗?我过分强调一致性吗?我总是可以找到关于C#功能的合法讨论,并且几乎总是优缺点的一切,但在这种情况下,我真的找不到任何人谁推荐不使用自动实现的属性。

最佳答案
它不会给你任何额外的,而不是简洁。如果你喜欢更详细的语法,那么一定要使用它。

使用自动道具的一个优点是,它可以避免编写一个愚蠢的编码错误,例如意外分配错误的私有变量到属性。相信我,我以前做过!

你关于汽车道具不是很灵活的一点是一个好的。你唯一的灵活性是通过使用私有get或private设置来限制范围。如果你的getter或setter对他们有任何复杂性,那么auto props不再是一个可行的选择。

转载注明原文:c# – 使用自动实现的属性超过手动实现的属性的任何理由? - 代码日志