我正在使用这两个属性
1)
int x = 0;
public int X
{
get
{
return x;
}
set
{
x = value;
}
}
2)
public string ID
{
get;
set;
}
这两个属性有什么区别。
我正在使用这两个属性
1)
int x = 0;
public int X
{
get
{
return x;
}
set
{
x = value;
}
}
2)
public string ID
{
get;
set;
}
这两个属性有什么区别。
当您如下例所示声明属性时, 编译器会创建一个私有的匿名支持字段,该字段只能通过属性的 get 和 set 访问器访问。
唯一的区别是一个事实,在您的示例中,您仍然可以直接获取/设置支持字段,而不是使用属性。使用自动实现的属性,您无法做到这一点。
没有什么。两者都是相同的,除了您可以从第一个代码段执行此操作,而第二个代码段无法执行此操作。
int x = 0;
public int X
{
get
{
return x;
}
set
{
if (value < 0) // A guard condition or some custom condition here
value = 0;
x = value;
}
}
要获得更明确的答案,您可以这样做
private double seconds;
public double Hours
{
get { return seconds / 3600; }
set { seconds = value * 3600; }
}