C# 如何将一个变量绑定到另一个变量
我有一段代码:C# 如何将一个变量绑定到另一个变量,c#,C#,我有一段代码: Brick brick1= new Brick(parent.X - 1,parent.Y); X&Y是整数 基本上,我想做的是:当父块的x改变时,brick1的x也会改变,这与parent.x的值无关,brick1.x将始终等于parent.x-1 有没有办法做到这一点?假设Brick不是一个结构,您可以这样做。您也可以通过继承ChildBrick类来实现这一点,但除非您需要增加复杂性,至少在我看来,允许Brick拥有一个Brick的父级,并为父级添加一个构造函数更简单。然后
Brick brick1= new Brick(parent.X - 1,parent.Y);
X&Y是整数
基本上,我想做的是:当父块的x改变时,brick1的x也会改变,这与parent.x
的值无关,brick1.x
将始终等于parent.x-1
有没有办法做到这一点?假设
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;
}
}
}
只需使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);
指针有什么帮助?在C#类中,引用类型的作用与指针非常相似。您需要的是对另一个brick的引用和动态计算
X
的getter。您需要让brick类知道其父类,添加父类型的字段。并更改构造函数,以便可以使用新的Brick(父级)。不确定OP需要的是继承。在他的代码中,parent似乎不是父类,而是与brick1具有父关系的同一类的对象,但是由于childBrick是一个Brick,它可以很好地完成他想要的