更改属性的属性时未使用属性

  • 本文关键字:属性 未使用 c# getter-setter
  • 更新时间 :
  • 英文 :


我有一个超级简单的类点:

class Point
{
    public Point(double x, double y)
    {
        X = x;
        Y = y;
    }
    public double X;
    public double Y;
}

我在框类中使用点:

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的设置器。而是称为getter。我需要在适当的时候更改下rhcorner备份变量x和y。我该怎么做?

您无法使用UpperLHCorner的设置器来修改_lowerRHCorner的属性。唯一的时间设置器是将新值分配给UpperLHCorner本身。为了实现您需要做的事情,您必须使用带有XY参数的SetUpperLHCorner之类的方法。在该方法中,您可以调整_lowerRHCorner属性。

当然,如果您真的愿意,可以在XY点的属性上添加事件处理程序。但这将是...

最新更新