我有一个非常简单的类Point:
class Point
{
public Point(double x, double y)
{
X = x;
Y = y;
}
public double X;
public double Y;
}
我在Box类中使用Point:
internal class Box
{
private Point _upperLHCorner = new Point();
private Point _lowerRHCorner = new Point();
internal Box() { }
public Point UpperLHCorner
{
get
{
return _upperLHCorner;
}
set
{
this._upperLHCorner = value;
_lowerRHCorner.X = _upperLHCorner.X + _width;
_lowerRHCorner.Y = _upperLHCorner.Y + _height;
}
}
public Point LowerRHCorner
{
get
{
return _lowerRHCorner;
}
}
}
当我在代码中设置UpperLHCorner.X时,未调用UpperLHCorner的setter。取而代之的是调用getter。我需要在适当时更改LowerRHCorner支持变量x和y。我该怎么做?
答案 0 :(得分:1)
您不能使用UpperLHCorner
的设置方法来修改_lowerRHCorner
的属性。唯一调用时间设置器的情况是,如果您为UpperLHCorner
本身分配了新值。要实现您需要执行的操作,必须使用带有SetUpperLHCorner
和X
参数的Y
之类的方法。通过这种方法,您可以调整_lowerRHCorner
属性。
当然,如果确实需要,可以在Point的X
和Y
属性上添加事件处理程序。但是那会...很糟糕。