3

我想要所有间隔的总和,但是我写了这段代码我有一个错误说明:使用未分配的局部变量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);
}
4

4 回答 4

7

从...开始:

TimeSpan total = TimeSpan.Zero;

增加一个没有值的变量是没有意义的。所以这是很自然的编译器错误。

虽然字段被初始化为 0,但局部变量必须在首次读取之前分配给它们。在您的程序total += interval;中读取total以增加它。因此,在循环的第一次迭代中,它不会被分配一个值。

于 2011-10-24T11:42:12.947 回答
1

您应该在使用前初始化总值

 TimeSpan total = new TimeSpan();,

那么代码应该可以工作。

于 2011-10-24T11:42:49.237 回答
1
total += interval;

当 total 根本没有分配值时是错误的......你还要添加什么间隔?

于 2011-10-24T11:40:16.493 回答
0

没有初始值被分配给总计。您必须在使用它之前分配一个值。

于 2011-10-24T11:41:41.473 回答