为什么set函数在我的代码中不起作用?

时间:2019-01-22 18:14:25

标签: c# .net oop properties

我使用了具有byte []属性的模型,应该在使用前将其转换为short []。

我添加了两个属性,使用get属性将byte []转换为short [],并且效果很好。 我的问题是,当我尝试使用Set属性做相反的事情并在更改short []时设置了byte []数组时,我的代码无法正常工作,而当我调试代码时,它根本没有调用Set Function。

public class TestModel
{
   public byte[] Data { get; set; } // The original data
   private short[] _DataConverted { get; set; }
   public short[] DataConvert
   {
    get => _DataConverted ?? (_DataConverted = Data.GetShiftShort());
    set
    {
     Data = value.GetShiftByteFShort();
     _DataConverted = value;
    }
   }
}

public void Main()
{
  TestModel modal =new TestModel()
  {
   Data = new byte[] {0,1,0,2,0,3}
  };
  modal.DataConvert[0] ++;
  modal.DataConvert[1] +=1;
  modal.DataConvert[2] = modal.DataConvert[2] + 1 ;
}

结果是:

_DataConverted {2,3,4}

DataConvert {2,3,4}

但是数据不会更改{0,1,0,2,0,3}

0 个答案:

没有答案