【问题标题】:get value in windows form into another class?以windows形式获得价值进入另一个类?
【发布时间】:2017-07-19 09:13:32
【问题描述】:

Windows 窗体上的代码是

    private void button2_Click(object sender, EventArgs e)
    {

            CandleCollection collection = GetCandleCollection();
            int Dim = int.Parse(txt_agent.Text);
            int NumParticles = int.Parse(txt_part.Text);

            SOSManager p = new SOSManager(collection);

          //this part 
            p.Dim = Dim;
            p.NumParticles = NumParticles;

            m_part = new ParticleSwarm(fit,p.Dim, p.NumParticles);



    }

所以,我想将我放在文本框上的值添加到这个类。

public class SOSManager
{        
    private ParticleSwarm m_part;
    public ParticleSwarm BackTestPartReport
    {
        get
        {
            return m_part;
        }
    }

我声明这个

    public int Dim; //this part 
    public int NumParticles;

    public  double fit;

增加价值。

    public SOSManager(CandleCollection collection)
    {
        CandleList = collection;            
        Calculate();

        m_backTesting = new BackTesting(this);
        fit = m_backTesting.fitness;

        //this part
        m_part = new ParticleSwarm(fit, Dim, NumParticles);
        m_part.Calculate(Dim,NumParticles);
        //

    }

现在,我无法从 Windows 中获取此类的价值。我该怎么办?

【问题讨论】:

    标签: c# winforms oop


    【解决方案1】:

    与其在为时已晚时设置属性,不如将它们传递给具有更多参数的构造函数:

    public SOSManager(CandleCollection collection, int Dim, int NumParticles)
    {
        // If you still need to store them as properties:
        this.Dim = Dim;
        this.NumParticles = NumParticles;
    

    然后这样称呼它:

    SOSManager p = new SOSManager(collection, Dim, NumParticles);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-07-13
      • 2021-08-08
      • 2012-02-05
      • 1970-01-01
      • 1970-01-01
      • 2021-11-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多