0

所以,这可能是什么应该是什么的孩子的问题,但我很难找出执行以下操作的最佳方法。

假设我有一个厨房,我想发出一个命令来打开我的烤面包机,所以我会在按钮点击事件中调用这样的东西:

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);
     }
  }

}
4

1 回答 1

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);
  }
}
于 2012-10-30T23:45:57.240 回答