DataGridviewの列の合計を計算するプログラムを作成しましたが、この問題はクリックハンドラのロジックを別のメソッドにリファクタリングするときに発生します。 calcSum
メソッドは、クリックハンドラ内のすべてのロジックを直接持っているbutton2_Click
と比較して正しい出力を得られないようです。DataGridviewの列の合計を計算するC#
誰でも自分のコードに間違いがあることを指摘できますか?
//Calls sum of column method, "incorrect" output
private void button1_Click(object sender, EventArgs e){
calcSum(a,b,3);
}
private double calcSum(double a, double b, int c){
foreach(DataGridViewRow r in dataGridView1.Rows){
a = Convert.ToDouble(r.Cells[c].Value);
b = b + a;
}
MessageBox.Show("sum is " = b.ToString());
return b;
}
//shows correct/calculates output
private void button2_Click(object sender, EventArgs e){
double a =0,b=0;
foreach (DataGridViewRow r in dataGridView1.Rows){
a = Convert.ToDouble(r.Cells[3].Value);
b = b + a;
}
MessageBox.Show(b.ToString());
}
値a、bが宣言または初期化されている場合は?なぜそれらをあなたのcalcSumメソッドに渡していますか? – chadnt
ジレンマをより明確にしようとしました。 –