【发布时间】:2010-09-05 18:37:38
【问题描述】:
注意:这是在我开始使用 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 逻辑的能力,但是我已经可以通过简单地声明一个公共字段“公共字符串”来做到这一点标题”而不需要 { get;放; } 块,从而节省更多代码。
那么,我在这里缺少什么?为什么会有人真正想要使用自动属性?
【问题讨论】:
-
“我个人的抱怨是这些属性对我隐藏了一些东西,我不是黑魔法的忠实粉丝。”嗯?您知道编译器一直对您隐藏大量内容,对吗?除非您正在编写程序集(或者更准确地说,代码的实际 1 和 0),否则您编写的所有内容都是对您隐藏的东西。
标签: c# .net automatic-properties