我使用了具有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}