我有這段代碼:如何一個變量綁定到另一個
Brick brick1= new Brick(parent.X - 1,parent.Y);
X & y是整數,
Basiclly我想做的事是:當父磚變更X ,brick1的x值發生變化,其中它的值爲parent.X
,brick1.X
將始終等於parent.X - 1
有沒有辦法實現這個?
我有這段代碼:如何一個變量綁定到另一個
Brick brick1= new Brick(parent.X - 1,parent.Y);
X & y是整數,
Basiclly我想做的事是:當父磚變更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);
不確定繼承是OP需要的。在他的代碼中,「parent」看起來不是父類,而是與brick1的父級關係相同類的對象 –
,但由於childBrick *是* Brick,它可以很好地完成他想要的任務 –
指針將如何幫助?在C#中,類的引用類似於指針。 –
你需要的是一個對其他磚塊和一個吸氣劑的參考,它可以即時計算'X'。 –
您需要使Brick類知道其父類,才能添加父類型的字段。並更改構造函數,以便您可以使用新磚(父)。 –