【发布时间】:2019-07-30 22:54:53
【问题描述】:
我有一个超级简单的类点:
class Point
{
public Point(double x, double y)
{
X = x;
Y = y;
}
public double X;
public double Y;
}
我使用 Point in a Box 类:
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。我需要在适当的时候更改 LowerRHCorner 支持变量 x 和 y。我该怎么做?
【问题讨论】:
-
你能提供一个minimal reproducible example吗?
-
如果你设置了
UpperLHCorner.X,那么你就不会调用UpperLHCorner的setter。您没有改变重点,只是其中一个字段(您可能会考虑制作X和Y属性而不是字段)。此外,您应该显示_width和_height的定义,以制作可编译的示例。
标签: c# getter-setter