注意:这是在我开始使用C#时发布的。 凭借2014年的知识,我可以真正地说出,自动属性是C#语言有史以来最好的事情之一。
我习惯于使用私有字段和公共字段在C#中创建属性:
private string title; public string Title { get { return title; } set { title = value; } }
现在,在.NET 3.0中,我们获得了自动属性:
public string Title { get; set; }
我知道这更多是一个哲学/主观的问题,但是除了为每个字段保存五行代码外,是否有任何理由使用这些自动属性?我个人的抱怨是这些属性对我隐藏了东西,我也不是黑魔法的忠实拥护者。
实际上,隐藏的私有字段甚至不会显示在调试器中,考虑到get / set函数什么都不做的事实,这是可以的。但是,当我想实际实现一些getter / setter逻辑时,无论如何我都必须使用私有/公共对。
我看到的好处是,我节省了很多代码(一条代码与六行代码),而不会在以后失去更改getter / setter逻辑的能力,但是话又说回来,我可以通过简单地声明一个公共字段“ Public string Title”来做到这一点。 {获取;组; }块,从而节省更多代码。
那么,我在这里想念什么?为什么有人实际上要使用自动属性?
我们一直在堆栈溢出中使用它们。
您可能也对“ 属性与公共变量”的讨论感兴趣。恕我直言,这确实是对它的反应,为此,它很棒。