2017-07-18 65 views
0

所以,我想增加數到文本框的形式從文本框中獲取輸入數據併發送到計算類?

enter image description here

,我想送數這一類

public class ParticleSwarm 
{ 

    private double Fitness; 
    MatchedPart matchedParticle = new MatchedPart(); 
    public List<MatchedPart> m_listMatchedPartItem = new List<MatchedPart>(); 
    public List<MatchedPart> MatchedPartList 
    { 
     get 
     { 
      return m_listMatchedPartItem; 
     } 
    } 
    public ParticleSwarm(double fitness) 
    {   
     Fitness = fitness; 
     Calculate(); 
     m_listMatchedPartItem.Add(matchedParticle); 
    }   
    // Get data to winform 

    public void Calculate() 
    { 

     int dim = 2; // problem dimensions 2 
     int numParticles = 2; //2 
     int maxEpochs = 100; //100 
     double exitError = 0.0; // exit early if reach this error 0 
     double minX = -10.0; // problem-dependent -10 
     double maxX = 10.0; //10 

我怎麼能在文本框中替換數來計算()昏暗,numParticles ..。 。 ?

+0

你應該讓你的文本框的構造名稱並使用'int.Parse/int.TryParse'和'double.Parse/double.TryParse'轉換它們的'.Text'屬性 – Ian

+0

Calcu後期方法應該改爲接受'dim'和'numparticles'參數。從'Form'中,首先需要使用'int.Parse'或'int.TryParse'將textbox.text轉換爲整數,然後通過將這些值傳遞給它來調用Calculate方法。 –

回答

1

你顯然需要有函數的參數。如果我正確地理解了您的問題,您想要將尺寸顆粒傳遞給Calculate()函數。

首先,內部ParticleSwarm類,你應該改變函數的原型像下面

public void Calculate(int dimen,int numParts) 

,當你要調用的方法,只是不喜歡下面

int dimen = int.Parse(textbox.Text); 
int parts = int.Parse(textbox2.Text); 
ParticleSwarm p = new ParticleSwarm(); 
p.Calculate(dimen,parts); 

你Calculate()函數看起來像這樣

public void Calculate(int dimen,int numParts) 
    { 

     int dim = dimen; 
     int numParticles = numParts; 
     int maxEpochs = 100; //100 

雖然我不確定這是你想要的!另外,Here是關於C#函數和參數傳遞的基礎知識的鏈接,如果您需要的話!

更新2

根據您的需要,構造函數應該修改成這樣

public ParticleSwarm(double fitness,int dimen,int numParts) 
    {   
     Fitness = fitness; 
     Calculate(dimen,numParts); 
     m_listMatchedPartItem.Add(matchedParticle); 
    }  

,並呼籲像這樣

int dimen = int.Parse(textbox.Text); 
    int parts = int.Parse(textbox2.Text); 
    ParticleSwarm p = new ParticleSwarm(fitness,dimen,parts); 
+0

是的,這是我想要的。但是我遇到了ParticleSwarm()的問題() 。當我調用ParticleSwarm()時。我打電話Calculate()裏面的方法。它看不到Calculate(int dimen,int numParts); { –

+0

你能告訴我你是如何以及在哪裏調用Calculate()? –

+0

public ParticleSwarm(雙健身) { Fitness = fitness; Calculate(); m_listMatchedPartItem.Add(matchedParticle); } –

0

您可以在按鈕單擊時調用Calculate()方法,並且您可以在Calculate()方法中獲取文本框值,或者可以將參數添加到Calculate(param 1,param 2)方法並從提取中發送參數值通過使用下面的代碼從文本框中的值:

int value = Convert.ToInt32(txtboxName.Text); 

OR

double value = Convert.ToDouble(txtBoxName.Text); 
+0

我已經知道這部分。但如何調用Calculate()方法。 我這樣稱呼。私人ParticleSwarm p; p.Calculate(); –

+0

你的表單中有沒有按鈕?如果是,那麼你可以在按鈕單擊事件上調用Calculate()方法。 –

+0

您可以使用ParticleSwarm objParticleSwarm = new ParticleSwarm();然後你可以調用objParticleSwarm.Calculate()方法。 –

相關問題