10 秒ごとにイベントを発生させるシステム タイマーがあります。そのため、10 秒ごとにフォームのメイン スレッドからクラス「Termocoppia」を呼び出して「milliV」の値を転送し、変数「tempEx」の値を取得することを期待しています。
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
System.Windows.Forms.Timer timer = new System.Windows.Forms.Timer();
timer.Tick += OnTimerTick;
timer.Interval = 10000;
timer.Start();
}
double tempEx;
//here a call the method "Calcola" in the class "Termocoppia"
private void OnTimerTick(object sender, EventArgs e)
{
double milliV = Convert.ToDouble(textBox8.Text); //I have a value of 1.111
Termocoppia thm = new Termocoppia();
thm.Calcola(milliV, tempEx);
textBox7.Text = tempEx.ToString();
}
次に、値 milliV がクラス「Termocoppia」内のメソッド「Calcola」に転送されます。ブレークポイントを付けてデバッグしたところ、値がクラスに受信されることを確認しました。
クラス「テルモコッピア」は次のようなものです。
public class Termocoppia
{
public double Calcola(double milliV, double tempEx)//here the value of milliV is still 1.111
{
tempEx= milliV;//here the value of tempEx is 0???
return tempEx;
}
}
クラスに送信された値とまったく同じ値が返されることを期待していますが、0 が返され続けます。「tempEx=milliV」行で変数 tempEx をデバッグすると、tempEx の値が 0 になり、その理由がわかりません。 ? ここで初心者の間違いを犯していると確信していますが、この問題を解決することはできません。