2017-02-23 44 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

你是指活動一直循環反覆,直到上堆棧溢出的Active屬性的進入。 –

回答

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

使用private _active我沒有得到異常,並且似乎正常工作。爲什麼我應該爲其他兩個領域的私人財產? –

+1

您的意思是LocalActive和GlobalActive? (除非你在初始文章中錯過了一些額外的代碼,否則你不需要它們的私有屬性) –