注意:这是在我开始使用 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 逻辑时,无论如何我都必须使用 private/public 对。
我看到了节省大量代码(一行对六行)而不会失去稍后更改 getter/setter 逻辑的能力的好处,但是我已经可以通过简单地声明一个公共字段“公共字符串标题”来做到这一点,而无需{ 获取的需要;放; } 块,因此甚至可以节省更多代码。
那么,我在这里缺少什么?为什么有人真的想使用自动属性?