所以,这可能是什么应该是孩子的问题,但我很难找出执行以下操作的最佳方法。
假设我有一个厨房,我想发出一个打开烤面包机的命令,所以我会在按钮点击事件中调用类似的东西:
private void buttonToaster_On_Click(object sender, EventArgs e)
{
myKitchen.Toaster.Activate();
}
我设想做下面描述的内容。但是,在C#中它表示我必须使RelayBoard“myStuff”成为静态。如果由于某种原因我想用这个来控制多个厨房,我宁愿不要让它变得静止,但是我怎么能做到这一点所以我可以实例化一个厨房,有一个与其中的所有内容对话的中继板,并在那下创建设备访问RelayBoard“myStuff”的厨房将命令写入?
class Kitchen
{
RelayBoard myStuff = new RelayBoard();
Appliance Toaster = new Appliance();
Appliance Coffee_Maker = new Appliance();
class Appliance
{
void Activate()
{
myStuff.WriteCommand(ApplianceAddress, 1);
}
void Deactivate()
{
myStuff.WriteCommand(ApplianceAddress, 0);
}
}
}
答案 0 :(得分:2)
简单地传递一个对厨房对象的引用:
class Appliance
{
private Kitchen _parent;
public Appliance(Kitchen parent) { _parent = parent; }
void Activate()
{
_parent.myStuff.WriteCommand(ApplianceAddress, 1);
}
void Deactivate()
{
_parent.myStuff.WriteCommand(ApplianceAddress, 0);
}
}