この構文を1つの変数で正常に実行しましたが、今度はfoeach()
ループに変更して値の範囲を取り、結果をメッセージボックスとして表示しようとしています。構文の私の問題は、ecll
は常に渡された最初の数値の値を保持し、計算は配列の後続の数字ごとに決して更新されないということです。計算が更新されていません
どこでこれが原因でアレイの後続の番号ごとに更新されないのですか?
private void btnGetData_Click(object sender, EventArgs e)
{
int start = 2;
int end = 10;
int[] nums = Enumerable.Range(start, end - start).ToArray();
foreach (int n in nums)
{
float tp_x = 0, tp_y = 0;
SAP = new List<PointF>();
float fbw = m_pd.bl[m_pd.bl.Count - 1].m_Width;
float Location1_X = tp_x + fbw;
float Location1_Y = tp_y;
SAP.Add(new PointF(Location1_X, Location1_Y));
float iBH = gbh(m_pd.bl.Count - 1);
float lbw = m_pd.bl[0].m_Width;
float Location2_X = tp_x + lbw;
float Location2_Y = tp_y + (iBH) + 1.5f;
PointF rip = new PointF();
if (!Getrip(ftp, rhep, ref rip))
{
SAP = null;
return;
}
for (int iRowIndex = saii; iRowIndex < m_pd.pp.Count; iRowIndex++)
{
float Xvalue = m_pd.pp[iRowIndex].X;
float Yvalue = m_pd.pp[iRowIndex].Y;
SAP.Add(new PointF(Xvalue, Yvalue));
if (Yvalue == LeftIntersectionPoint.Y)
{
pp.X = Xvalue;
pp.Y = Yvalue;
continue;
}
if (Xvalue >= rip.X)
{
Xvalue = rip.X;
SAP[SAP.Count - 1] = new PointF(rip.X, rip.Y);
}
if (Xvalue == rip.X)
{
break;
}
pp.X = Xvalue;
pp.Y = Yvalue;
}
double ecll = Getll(Location1_X, Location1_Y, rip.X, rip.Y);
Messagebox.Show(Convert.ToString(ec11));
txtLength.Text = ll.ToString("0.00");
}
}
これで、選択したツールセットのデバッガの使い方を学ぶ時間です。 – nvoigt
@nvoigt - 私はVS2017を使用しています - 私はデバッガとイミディエイトウィンドウを使用して、Location1_XとLocation1_Yにnを変更すると値を変更しないように問題を追跡しました。しかし、なぜ私は見ていない。 –
これらは1つのポイントに設定されています。そこにブレークポイントを置くことができます。彼らは 'n 'に依存しているように見えません、どうしてあなたはそれらが変わると思いますか? 'tp_x'と' tp_y'はその時点で常にゼロになります。 – nvoigt