2017-02-23 224 views
0

Следующий код дает мнеполе Модель зависит от другого -

System.StackOverflowException {Не могу оценить выражение, так как текущий поток находится в состоянии переполнения стека. }

Как определить поле внутри моей Модели, которое зависит от других?

public class User : IMandatoryFields 
{ 
    public byte Active 
    { 
     get 
     { 
      if (this.Active == 1 && this.LocalActive == 1 && this.GlobalActive == 1) return 1; 
      else return 0; 
     } 
     set { this.Active = value; } 
    } 
} 
+1

Вы имеете в вид вход в ГЮТ Активную собственности он держит не зацикливание над до переполнения стека. –

ответ

3

Я думаю, что вам нужна частная собственность также:

public class User : IMandatoryFields 
    { 
    private byte active; 
    public byte Active 
     { 
      get 
      { 
       if (active == 1 && this.LocalActive.HasValue && 
this.LocalActive.Value == 1 && 
this.GlobalActive.HasValue && 
this.GlobalActive.Value== 1) return 1; 
       else return 0; 
      } 
      set { active = value; } 
     } 
    } 
    public byte? LocalActive { get; set; } 
    public byte? GlobalActive { get; set; } 
+0

LocalActive и GlobalActive тоже должны иметь частную собственность ... – Stone

+0

С частным _active я не получаю исключения и, кажется, работает нормально. Почему у меня должна быть приватная собственность для двух других полей? –

+1

Вы имеете в виду LocalActive и GlobalActive? (вам не нужны частные свойства для них, если вы не пропустили какой-то дополнительный код в исходном сообщении) –