我只是想检查我是否理解正确。get 中的返回值使返回值等于私有实例数据。并且设置值使公共值的值等于私有实例的值。我理解正确吗?
问问题
266 次
2 回答
5
不总是。
Get
返回开发人员认为属性的值应该是set
什么,并更改开发人员认为适合存储数据的任何内容。属性和内部字段之间通常存在一对一的映射,但并非总是如此。
int UltimateAnswer {get {return 42;}} // no internal field at all
int Direct
{
get {return _direct;}
set {_direct = value;}
}
int WithConversion
{
get {return _stored * 100;}
set { _stored = value / 100;}
}
int AutoFiled {get;set;} // this one directly maps to automatically created field.
于 2012-07-03T04:43:17.250 回答
4
如果你是财产被定义为:
private int _value;
public int Value
{
get { return _value; }
set { _value = value; }
}
那么是的,get 正在返回私有字段的值,_value
而 set 正在设置,_value
但它也可能不同。
public int Value
{
get { return getCalculatedValue() }
set {
if (_value > 0)
{
_value = value;
}
else
{
_value = -1;
}
}
}
在上面的示例中,get 是从某个名为的函数返回计算getCalculatedValue()
值,而 set 是验证某个条件的值,然后适当地设置它。
于 2012-07-03T04:42:50.387 回答