代码段:
private double memberVal;
public double MemberVal
{
get { return memberVal; }
set { memberVal= value; }
}
和
public double MemberVal
{
get; set;
}
答案 0 :(得分:13)
几乎。在第二个示例中,MemberVal
无法公开访问。
答案 1 :(得分:5)
不,但现在它们是相同的
private double memberVal;
public double MemberVal
{
get { return memberVal; }
set { memberVal= value; }
}
和
public double MemberVal
{
get; set;
}
<强>更新强> 除了 - 正如JohannesRössel所指出的那样 - 你可以在第一种情况下从代码访问该字段但不能在后者中访问:-) -
这意味着在第一个代码示例中,您可以在类中直接设置属性的后备成员(例如private double memberVal1
,例如memberVal = 1.1;
),在第二个代码示例中,仍然存在私有支持该物业的成员,但它现在是看不见的
您只能通过酒店访问它。
答案 2 :(得分:3)
是的,该代码是等效的,除了在第二个例子中没有公开的MemberVal(你的意思是)。在后一种情况下,编译器会为您生成一个字段。它将有另一个自动生成的名称。
答案 3 :(得分:0)
private double memberVal;
public double MemberVal
{
get { return memberVal; }
set { memberVal= value; }
}
public double MemberVal
{
get; set;
}
第二个代码片段不适用于.net 2.0,因为它是在.net 3.0中引入的。
第二个是第一个的简写符号,但仅适用于.net 3.0或更高版本。