0

以前の期間についての私の質問を再確認してください。私がやろうとしていること。テキスト ボックスを自動更新しようとすると、時間が経過します。以下のコードを使用すると、問題なく動作します。

public  void AutoSaveTimer()
{
   timer = new System.Timers.Timer ();
   timer.AutoReset= false ;
   timer.Elapsed += new System.Timers.ElapsedEventHandler (timer_Elapsed);
   timer .Interval = GetInterval();
   timer.Start ();
}

public  double GetInterval()
{      
   DateTime now = DateTime .Now;
   return ((60-now.Second )*1000-now.Millisecond );
}

public void timer_Elapsed ( object sender ,System .Timers .ElapsedEventArgs e)
{
   UpdateLogDatabase();

   timer .Interval =GetInterval ();
   timer .Start ();
}

private void AutoSaveTimerStop()
{
   timer = new System.Timers.Timer();
   timer.Stop();
}

しかし、if ステートメントでユーザー オプションをチェックしようとすると、メソッドが double を返さないというエラーが表示されます: 割り当てられていない変数の使用。

  public double GetInterval()
  {
      double d;
      DateTime now = new DateTime();

      if (cb5Min.Checked== true)
      {
          d= ((60 - now.Second) * 1000 - now.Millisecond);
      }
      else if (cb15Min.Checked)
      {
          d= ((900 - now.Second) * 1000 - now.Millisecond);
      }
      return d;
  }

返信ありがとうございます。

4

2 に答える 2

1

エラーが発生しています: 割り当てられていない変数の使用。

メソッドから変数を返そうとしています。変数dを宣言しましたが、初期化していません。初期化は if ブロックで行われ、コンパイラはコードのその部分に到達するかどうかを判断できません。したがって、次のようなデフォルト値を割り当てることができればより良いでしょうd:

double d = 0;

または、コードで別のelseブロックを使用しdて、返される前に何らかの値に初期化されるようにすることができます。

于 2013-02-12T11:49:36.800 に答える
1

エラーが発生しています: 割り当てられていない変数の使用。

コンパイラ エラーを理解することを学ぶようにしてください。両方のチェックボックスがチェックされていない場合は、割り当てられていない を返しますddなど、宣言する場所を初期化することをお勧めします0

于 2013-02-12T11:49:37.540 に答える