我有这段代码:
Brick brick1= new Brick(parent.X - 1,parent.Y);
X& Y是整数,
基本上我想要做的是:当父砖的x发生变化时,brick1的x发生变化,parent.X
的值很重要,brick1.X
将始终等于{ {1}}
有没有办法实现这个目标?
答案 0 :(得分:3)
假设Brick
不是结构,你可以这样做。您也可以通过继承使用ChildBrick类来完成此操作,但除非您需要添加的复杂功能,至少在我看来,允许Brick
拥有Brick
的父级并添加更简单父级的构造函数。然后,如果您检索一个值并且需要从父项计算,您只需检查您是否有父项并进行相应计算。
class Brick
{
private Brick _parent;
private int _x;
private int _y;
Brick(Brick parent) {_parent = parent);}
Brick(int x, int y)
{
_x = x;
_y=y;
}
public int X
{
get
{
if (_parent != null) return _parent.X - 1;
return _x;
}
}
public int Y
{
get
{
if (_parent != null) return _parent.Y;
return _y;
}
}
}
答案 1 :(得分:0)
让brick1成为具有计算的只读属性的派生类
public class childBrick: Brick
{
public new float X
{
get { return base.X - 1.0 }
private set { base.X = value; }
}
public static Brick Make( float x, float y)
{
return new childBrick
{
X = x;
Y = y;
}
}
}
像这样使用
Brick brick1 = childBrick.Make(parent.X - 1,parent.Y);