배열 속성을 다른 인덱스의 두 개의 다른 배열 계산을 반환하도록했습니다 (이 질문은 다른 질문 인 zip을 사용하여 대답했습니다 Array property returns calculation of 2 other arrays). 하지만 지금은 계산의 가치를 설정해야합니다.C# 배열 속성 다른 배열을 기반으로
즉. HiLimit [0]을 설정하면 Range가 (값 - LowLimit)으로 설정됩니다. 어떻게 가능합니까? getter와 setter 모두 필요합니다.
EDIT (2017-02-09) : @ dasblinkenlight 답변을 올바른 것으로 표시했습니다. 내가 이것을 필요로하는 이유는 하한선과 범위를 보내는 장치와 통신하고 있기 때문입니다. 그러나 소프트웨어는 사용자가 하한선과 상한선을 읽고 편집 할 수있게합니다. 상한과 하한은 디스플레이의 컨트롤에 바인딩되어 있으므로 해당 속성을 사용하고 장치와 통신 할 때 범위를 설정하고 가져 오는 두 가지 방법을 만들었습니다.
public ushort[] LowLimit{ get; set; } = new ushort[8];
public ushort[] HighLimit{ get; set; } = new ushort[8];
public ushort getRange(int index) {
ushort range = 0;
if(index < 8)
range = (ushort)(HighLimit[index] - LowLimit[index]);
return range;
}
public void setRange(int index, ushort value) {
if (index < 8)
HighLimit[index] = (ushort)(LowLimit[index] + value);
}
FYI, bodied 속성 식은 액세스 할 때마다 코드 계산/실행을 수행합니다. 그래서 새로운 배열을 얻을 때마다 - 캐쉬되거나 필드에 저장되지 않습니다. – pinkfloydx33
LowLimit과 Range는 소프트웨어가 통신하고있는 장치에서옵니다. LowLimit 및 HiLimit은 사용자가 소프트웨어에서 편집 할 수있는 매개 변수입니다. – jsun5192