2017-07-18 13 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 

を番号を送信します) dim、numParticles .. 。 ?

+0

のようなコンストラクタを呼び出すように変更する必要があります

UPDATE 2

'int.Parse/int.TryParse'と' double.Parse/double.TryParse'を使って '.Text'プロパティを変換します。 – Ian

+0

Calcuパラメータ 'dim'と' numparticles'を受け入れるようにlateメソッドを変更する必要があります。そして '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#関数とパラメータ渡しに関する基本的なリンクです。あなたのニーズによると、コンストラクタはこの

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

公開パーティクルスーム(ダブルフィットネス) { フィットネス=フィットネス; 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()メソッドを呼び出すことができます。 –

関連する問題