如何设置对象的初始状态,没有'这个'分配

时间:2015-07-17 13:43:29

标签: c#

我有一个属性为Capacity的类,当Capacity = 0时,对象必须设置为初始状态。我使用方法InitState()执行此操作,因为我无法创建新实例并分配给this。是否有方法使用this或其他方式来设置初始状态?

public class Test {
  private int _field1 = -1;
  private int[] _array;
  ...

  public Test() : this(0) { }      

  public Test(int capacity) {
    _array = new int[capacity];
  }
  ...
  public int Capacity {
    get { return _array.Length; }
    set
    {
      //not working 
      //if(value == 0) this = new Test();
      if(value == 0) InitState();
      ...
    }
  }

  //sets fields in default state
  private void InitState() {
    _field1 = -1;
    _array = new int[0];
    ...
  }
}

1 个答案:

答案 0 :(得分:2)

不,你不能为此分配一个值,所以你的代码是正确的