C# 未赋值局部变量“total”的使用`

C# 未赋值局部变量“total”的使用`,c#,local-variables,unassigned-variable,C#,Local Variables,Unassigned Variable,我想得到所有区间的总和,但我写这段代码时有一个错误:使用未分配的局部变量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 += i

我想得到所有区间的总和,但我写这段代码时有一个错误:使用未分配的局部变量
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);
}

如果“总计”根本没有指定值,则是错误的。。。您还打算添加什么间隔?

没有初始值分配给总计。在使用之前,必须指定一个值。

从以下内容开始:

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


当字段被初始化为0时,必须在首次读取局部变量之前将其赋值。在您的程序中,
total+=interval读取
总计
以增加它。因此,在循环的第一次迭代中,它不会被赋值。

在使用之前,您应该初始化total value

 TimeSpan total = new TimeSpan();,

然后代码应该可以工作。

我只想在datagridview中获得所有行的总数,列中填充了时间跨度。@Nick\u只需将其初始化为0即可。或者不管默认的任务是什么。TimeSpan total=新的TimeSpan(0);是我所需要的吗?上次编辑破坏了格式设置,
enter TimeSpan
部分毫无意义。您可以还原或修复它吗?在添加“interval”之前声明并初始化“total”
 TimeSpan total = new TimeSpan();,