использование неназначенной локальной переменной `total` - PullRequest
2 голосов
/ 24 октября 2011

Я хочу получить сумму всех интервалов, но я пишу этот код. У меня ошибка, в которой говорится: использование неназначенной локальной переменной 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 ]

6 голосов
/ 24 октября 2011

Начните с:

TimeSpan total = TimeSpan.Zero;

Увеличение значения переменной, не имеющей значения, не имеет смысла.Поэтому вполне естественно, что это ошибка компилятора.

В то время как поля инициализируются равными 0, локальные переменные должны быть назначены до их первого чтения.В вашей программе total += interval; читает total, чтобы увеличить его.Таким образом, на первой итерации вашего цикла ему не было бы присвоено значение.

1 голос
/ 24 октября 2011

Вы должны инициализировать общее значение перед использованием

 TimeSpan total = new TimeSpan();,

, тогда код должен работать.

1 голос
/ 24 октября 2011
total += interval;

Неправильно, если для итогового значения вообще не назначено значение ... Что вы тоже собираетесь добавить интервал?

0 голосов
/ 24 октября 2011

Никакое начальное значение никогда не присваивается общему количеству.Вы должны присвоить значение, прежде чем использовать его.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...