Возможно, свойства не подходят для этого, но я изо всех сил пытаюсь найти ответ относительно хорошего решения.
public class Blah
{
public double A { get{ return _B / _C; } }
public double B
{
get{ return _A * _C; }
set{ _B = value; }
}
public double C
{
get{ return _B / _A; }
set{ _C = value; }
}
private double _A;
private double _B;
private double _C;
public Blah(){}
public Blah(double a, double b, double c)
{
this._A = a;
this._B = b;
this._C = c;
}
}
Предполагая, что A всегда является свойством только для чтения, каков хороший способ обработки произвольного количества дополнительных свойств, которые могут повлиять на вывод A? Я чувствую, что это плохой (абсолютно неправильный!) Способ сделать это, потому что я всегда должен иметь возможность получить значение, которое я назначил. Например, если я назначу B = 3, тогда я смогу получить 3 в следующий раз, когда я позвоню B, вместо того, чтобы получить _A * _C.
Однако мне нужно, чтобы этот тип взаимозависимости существовал (или совершенно другой подход, который достигает той же цели). Все значения связаны, поэтому мне нужно, чтобы изменение одного значения было отражено в других.
Я просто не могу найти подходящий способ сделать это.
Редактировать
Я сделал плохой пример. В действительности, значения не-A не зависят от A, а только друг от друга - B влияет на C, C влияет на D и т. Д .; однако, A - это просто некоторая комбинация этих значений. Не уверен, имеет ли это значение, как лучше всего к этому подойти, но подумал, что стоит упомянуть.