Wil*_*oso 0 c# get accessor set
在不使用速记的情况下使用访问器相当新颖.我正在尝试基于另一个属性更改属性,而不能将其设置在其他位置.基本上我想拥有它;
public int Salary { get; set; }
public int Tax
{
get
{
if (Salary > 2000)
{
return Tax = 20;
}
else if (Salary > 1500)
{
return Tax = 10;
}
else
{
return Tax = 5;
}
}
}
Run Code Online (Sandbox Code Playgroud)
因此,不可能能够更改Tax属性本身,但是我得到一个错误,说"Property Customer.Tax无法分配给它,因为它是readonly"而且我理解这个问题,但我不知道如何解决这个问题.
这是一个吸气剂.您没有在getter中设置值.如果您使用它来设置值,那么它将是一个setter.getter只是获得一个值.Tax"拥有" 的唯一值是getter返回的任何值.
public int Tax
{
get
{
if (Salary > 2000)
{
return 20;
}
else if (Salary > 1500)
{
return 10;
}
else
{
return 5;
}
}
}
Run Code Online (Sandbox Code Playgroud)
如果祖母有轮子,她就是火车.如果你只是制定一个"永远不会在吸气器中设置任何东西"的规则,那么你生活中的不确定性会得到很好的解决.
唯一的例外是为readonly属性初始化一个私有支持字段,该属性返回一个只需要初始化一次的昂贵对象:
private ReadOnlyCollection<String> _states;
public ReadOnlyCollection<String> States; {
get {
if (_states == null) {
_states = new ReadOnlyCollection(DB.GetStates().ToList());
}
return _states;
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
290 次 |
| 最近记录: |