2011-10-24 14 views
2

私はすべての間隔の合計が必要ですが、私はこのコードを書いています:未割り当てのローカル変数totalの使用?割り当てられていないローカル変数 `total`の使用

enter TimeSpan total; 
foreach (var grp in query) 
{ 
    TimeSpan interval = TimeSpan.FromMinutes(grp.Minuut); 
    TimeSpan intervalH = TimeSpan.FromHours(grp.Sum); 

    interval = interval + intervalH; 
    total += interval; 
    string timeInterval = interval.ToString(); 
    dataGridView2.Rows.Add(i++, grp.Id, grp.Sum, grp.Minuut,timeInterval); 
} 
+0

あなたの最後の編集があなたの書式を破壊し、 'Enter TimeSpan'の部分が意味をなさない。それを元に戻すことができますか? – CodesInChaos

+0

'interval'を追加する前に 'total'を宣言して初期化します – Alex

答えて

1
total += interval; 

合計が全く割り当てられた値がないとき、間違っている...何も間隔を追加するつもりですか?

+0

datagridviewにすべての行を合計したいだけです。その列はtimespanで埋められます。 –

+0

@Nick_BEそれを0に初期化するか、デフォルトのC'torが何であれ。 – FailedDev

0

合計に初期値は割り当てられていません。使用する前に値を割り当てる必要があります。

+0

TimeSpan合計=新しいTimeSpan(0)。私は –

5

でスタート:

TimeSpan total = TimeSpan.Zero; 

は意味をなさない値を持たない変数をインクリメントします。したがって、これがコンパイラエラーであることは当然のことです。

フィールドは0に初期化されますが、ローカル変数は最初に読み込まれる前に割り当てられなければなりません。あなたのプログラムでは、totalをインクリメントするためにtotal += interval;と読みます。したがって、ループの最初の反復では、値が割り当てられませんでした。

+0

+1フィールドと比較するために必要なものです。これは初期化されます。 –

1

あなたは、コードが動作するはずです

TimeSpan total = new TimeSpan();, 

使用前に合計値を初期化する必要があります。

関連する問題