【发布时间】:2014-11-13 07:11:16
【问题描述】:
我试图帮助我的朋友理解诸如字段和属性以及 getter/setter 之类的东西。然后他使用了没有私有字段的属性,并告诉我它有效。我什至不知道这是可能的,而且似乎在网上找不到太多关于它的信息。
举个例子:
public int Number { get; set; }
代替:
private int number;
public int Number
{
get { return number; }
set { number = value; }
}
它似乎有效(据我所知),但现在我有以下问题:
- 幕后发生了什么?
- 首选哪种方式?
- 有什么优点/缺点吗?
编辑:
我一直认为 { get;放; } 与 get { return x; 相同} 设置 { x = 值; }。哦,很好,我现在知道了。然而,问题仍然是一样的。一个被认为比另一个更好吗?优点/缺点?
【问题讨论】:
-
与第二个代码块的方式完全相同,
private int number与public int Number { get; set; }完全不同。 -
您可能正在考虑拥有
private int number;和public int Number { get { return number; } set { number = value; } } -
我建议您阅读 Auto Properties 和 Getters & Setters.. 为您自己以及您的“朋友”
-
Auto-Implemented Properties:
the compiler creates a private, anonymous backing field -
回答你的尾随问题(我之前的评论/链接是错误的复制/粘贴)stackoverflow.com/questions/8116951/…
标签: c# properties field