基于另一个属性设置属性

时间:2015-02-27 12:25:26

标签: c# properties

如果有用户数组,那么SuperUserCount应该是用户数的总和,否则它应该有自己的值

 class MyUser
 {
 public int SuperUserCount { get; set; }

 private User[] users;
 public User[] Users
 {
  get { return users;}
  set
   {
    users= value;
    if(value!=null)
     {
      SuperUserCount  = value.Sum(user => user.count);
     }
   }
 }
 }

我编写了上面的代码来获取用户数的总和。 尚未测试

但是,当填充get{}对象时,如何确保SuperUserCount自身值不会覆盖用户MyUser内设置的SuperUserCount值,反之亦然

1 个答案:

答案 0 :(得分:0)

您可以将setter设为私有,以防止它被覆盖。

public int SuperUserCount { get; private set; }

如果您需要为拥有MyUser个用户的null个对象设置不同的值,请添加专门用于此目的的方法。

public Boolean RequestOverrideSuperUserCount(int count)
{
    Boolean overrideAllowed = (null == users);
    if(overrideAllowed)
        SuperUserCount = count;
    return overrideAllowed;
}