我有一个超级简单的类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。我该怎么做呢?
你不能使用UpperLHCorner
的setter来修改_lowerRHCorner
的属性。调用唯一的时间设置器是为UpperLHCorner
本身分配一个新值。要实现你需要做的事情,你必须使用像SetUpperLHCorner
和X
和Y
参数这样的方法。在该方法中,您可以调整_lowerRHCorner
属性。
当然,如果你真的想要,你可以在Point的X
和Y
属性上添加事件处理程序。但那将是......喋喋不休。