如何将一个类的值传递给另一C#Grasshopper

时间:2019-02-26 17:17:29

标签: c# grasshopper

我尝试将bool烘焙值从一个类(属性类)传递到solve实例(buttonTest类)。 我已经尝试过几种方法作为“获取方法”并编写没有成功的属性。

namespace buttonTest
{
   public class buttonTestComponent : GH_Component
   {      
     public override void CreateAttributes()
     {
       m_attributes = new Attributes_Custom(this);
     }

   protected override void SolveInstance(IGH_DataAccess DA)
   {
       Circle circle = new Circle(2.00);
      //here I want to bake       
   }

   public class Attributes_Custom : GH_ComponentAttributes
   {
       public Attributes_Custom(GH_Component owner) : base(owner) { }
       protected override void Layout()


        bool bake;


       public bool Bake
       {
           get { return bake; }
       }



       public override GH_ObjectResponse RespondToMouseDown(GH_Canvas sender, GH_CanvasMouseEvent e)
       {
           if (e.Button == MouseButtons.Left)
           {
               RectangleF rec = ButtonBounds;
               if (rec.Contains(e.CanvasLocation))
               {
                   bool bake = true;
                   MessageBox.Show("Hello World", "Hello World", MessageBoxButtons.OK);

                   return GH_ObjectResponse.Handled;
               }
           }
           return base.RespondToMouseDown(sender, e);
       }
}

}

我是一个初学者,所以希望可以理解。

谢谢大家

如果我尝试使用m_attributes.Bake,则会收到以下错误消息: error message

1 个答案:

答案 0 :(得分:0)

如果我正确理解了这个问题,则需要类似以下的内容。

buttonTestComponent 类:

public class buttonTestComponent : GH_Component
{    
     private Attributes_Custom m_attributes;

     public override void CreateAttributes()
     {
          m_attributes = new Attributes_Custom(this);
     }

     protected override void SolveInstance(IGH_DataAccess DA)
     {
         Circle circle = new Circle(2.00);
         //use m_attributes.Bake here
     }
}

您将 Attributes_Custom 类保持不变。