use*_*346 2 .net c# properties private-members
我想知道的是,当我们可以直接将值分配给私有对象时,为什么我们需要私有的setter?请考虑以下代码:
private int counter = 0;
public int Counter {
get {
return counter;
}
}
Run Code Online (Sandbox Code Playgroud)
在上面的上下文中,我没有看到私有setter(Counter = 1)与直接将值分配给私有对象(counter = 1)之间的任何区别.
我可以考虑使用私有设置器的唯一原因是需要触发更改通知/事件.除此之外,我们甚至需要一个私人安装者?
如果使用自动属性,则看不到背景字段:
public int Counter { get; private set; }
Run Code Online (Sandbox Code Playgroud)
这允许您将set设置为private,将get设置为public,而无需自己编写支持字段.
即使您使用的是支持字段,有时您仍希望仍然使用该属性,而不是字段.属性设置器实际上可以包含可能适合调用的其他逻辑(验证/更改通知/等),但您可能希望将对此的访问权限限制为您的类.
| 归档时间: |
|
| 查看次数: |
226 次 |
| 最近记录: |