也许属性不是这样的方式,但我正在努力寻找一个好的解决方案的答案。如何最好地处理相互依赖的属性?
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;
}
}
假设始终是一个只读属性,怎么去处理有关可能影响输出的额外性的任意量的好方法?我觉得这是一个糟糕的(完全错误的!)方式来做到这一点,因为我应该总是能够检索我分配的值。例如,如果我分配B = 3,那么在下一次我调用B而不是获得_A * _C时,我应该能够得到3。
但是,我需要这种相互依存的存在(或完全不同的方法来达到相同的目标)。所有的值都是相关的,所以我需要改变一个值来反映其他值。
我只是想不出适当的方式来做到这一点。
编辑
我做了一个坏榜样。实际上,非A值不依赖于A,而只是彼此相关 - B影响C,C影响D等等;然而,A只是这些值的一些组合。不知道这是否是最好的方法,但认为这是值得一提的。
也许我错过了它,但谁指派_A? – MerickOWA
你说得对。我已经添加了它,但这不代表我尝试应用此问题的问题。随着我的工作,A纯粹是一个输出,并不会被分配。 – KarlHungus