如何将一个变量绑定到另一个变量

时间:2016-10-07 21:51:32

标签: c#

我有这段代码:

Brick brick1= new Brick(parent.X - 1,parent.Y);

X& Y是整数,

基本上我想要做的是:当父砖的x发生变化时,brick1的x发生变化,parent.X的值很重要,brick1.X将始终等于{ {1}}

有没有办法实现这个目标?

2 个答案:

答案 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);