Я следующий кодДля ошибки петли по вызову
List<WorkingRecord> recordListz = new List<WorkingRecord>();
-----other unrelated code----------
recordListz = IF_Export(out ifRecCount,out WrittenRecords);
for (int i = 0; i < recordListz.Count; i++)
{
//do something
}
recordListz создается нормально (ну вроде, но об этом позже), метод IF_Export Retuns список в порядке, а затем, если я поставил точку останова цикл for и наведите указатель мыши на объект recordListz, он выглядит нормально (с 10 записями в нем), а счетчик также содержит 10 записей. Однако, как только я попытаюсь выполнить цикл, ошибки кода, требующие «Объект, не установленный в экземпляр объекта» (не для объектов в списке, являются нулевыми). Плюс, если я поставлю быстрый просмотр объекта в этот момент, он утверждает, что значение равно ['' null].
Теперь о проблеме с созданием объекта recordListz в первую очередь .... Существует фактически другой код (полностью не связанный с указанным выше кодом) между созданием recordListz и вызовом метода. Первоначально я имел следующий код
List<WorkingRecord> recordListz = IF_Export(out ifRecCount,out WrittenRecords);
Однако это привело к ошибке «Объект не указывает на экземпляр объекта», даже если вызываемый метод возвращал прекрасно список (подтверждено путем размещения точки останова на обратная линия метода).
Я тогда сломал его к следующему
List<WorkingRecord> recordListz = new List<WorkingRecord>();
recordListz = IF_Export(out ifRecCount,out WrittenRecords);
Однако это ошибочный на первой линии с «Объект не указывает на экземпляр объекта». У меня есть точно такая же строка, которая вызывается в методе IF_Export, который отлично работает и находится в том же классе, что и код, вызывающий его ...
Перемещение строки вверху кода остановило это от ошибок, но это затем приводит к ошибке цикла.
Что происходит, я никогда не видел этого раньше.
----------------------- ОБНОВЛЕНИЕ -------------------
Хорошо, если у меня есть следующий код
-----other unrelated code----------
List<int> WrittenRecords=new List<int>();
List<WorkingRecord> recordListz = new List<WorkingRecord>();
recordListz = IF_Export(out ifRecCount,out WrittenRecords);
for (int i = 0; i < recordListz.Count; i++)
{
//do something
}
recordListz Инстанцирование ошибки строки с «объект не установлен экземпляр объекта
Однако, если я следующий код
-----other unrelated code----------
List<WorkingRecord> recordLista = new List<WorkingRecord>();
List<int> WrittenRecords=new List<int>();
List<WorkingRecord> recordListz = new List<WorkingRecord>();
recordListz = IF_Export(out ifRecCount,out WrittenRecords);
for (int i = 0; i < recordListz.Count; i++)
{
//do something
}
Тогда recordListz создает все еще ошибки, но создание экземпляра recordLista отлично работает!
Плюс, если у меня есть следующий код
-----other unrelated code----------
List<int> WrittenRecords=new List<int>();
List<WorkingRecord> recordLista = new List<WorkingRecord>();
List<WorkingRecord> recordListz = new List<WorkingRecord>();
recordListz = IF_Export(out ifRecCount,out WrittenRecords);
for (int i = 0; i < recordListz.Count; i++)
{
//do something
}
recordLista также отлично работает!
-------- Другой Обновить ------
Если я кладу в следующем коде
-----other unrelated code----------
List<int> WrittenRecords=new List<int>();
List<WorkingRecord> recordLista = new List<WorkingRecord>();
List<WorkingRecord> recordListz = new List<WorkingRecord>();
recordLista = IF_Export(out ifRecCount,out WrittenRecords);
for (int i = 0; i < recordLista.Count; i++)
{
//do something
}
Теперь recordLista конкретизации, что ошибки ..... .....
-------- Update 3 ---------------
Ok, я нашел в этот момент странные вещи происходят.
код находится внутри, если заявление
if (dsExportRecords != null && dsExportRecords.Tables[0].Rows.Count != 0)
dsExportRecords является набор данных. Если я поместил свой код сразу в оператор if, тогда произойдут странные вещи, но если это произойдет непосредственно перед утверждением if, все будет в порядке.
Можете ли вы выслать код IF_Export? – Elior
Что такое 'recordListz' сразу после вызова' IF_Export'? это возможно «нуль»? Обратите внимание, что 'new List()' никогда не будет использоваться, если только '------ другой несвязанный код -------' использует этот список где-то. –
@Marc Gravell. recordListz заполняется 10 записями после вызова IF_Export. Как я уже сказал, если я сломаюсь в цикле for, он все еще заполняется и имеет счет 10, только когда цикл фактически выполняется, он как-то становится нулевым. – coolblue2000