Ссылка на объект не указывает на экземпляр объекта - C# (179967)

Узнай цену своей работы

Формулировка задачи:

Здравствуйте! При написании кода у меня возникла проблема, а исправить не получается. В строке "
Листинг программы
  1. readSize = segment.InputStream.Read(buffer, 0, buffSize);
" выдает ошибку "Ссылка на объект не указывает на экземпляр объекта". Вот фрагмент кода :
Листинг программы
  1. ........
  2. private void StartSegments(int segmentCount, Stream inputStream)
  3. {
  4. .....
  5. for (int i = 0; i < calculatedSegments.Length; i++)
  6. {
  7. Segment segment = new Segment();
  8. if (i == 0)
  9. {
  10. segment.InputStream = inputStream;
  11. }
  12. segment.Index = i;
  13. segment.InitialStartPosition = calculatedSegments[i].StartPosition;
  14. segment.StartPosition = calculatedSegments[i].StartPosition;
  15. segment.EndPosition = calculatedSegments[i].EndPosition;
  16. segments.Add(segment);
  17. }
  18. RunSegments();
  19. }
  20. private void SegmentThreadProc(object objSegment)
  21. {
  22. Segment segment = (Segment)objSegment;
  23. segment.LastError = null;
  24. .........
  25. int buffSize = 8192;
  26. byte[] buffer = new byte[buffSize];
  27. segment.State = SegmentState.Connecting;
  28. // raise the event
  29. OnSegmentStarting(segment);
  30. segment.CurrentURL = this.resourceLocation.URL;
  31. using (segment.InputStream)
  32. {
  33. // raise the event
  34. OnSegmentStarted(segment);
  35. // change the segment state
  36. segment.State = SegmentState.Downloading;
  37. segment.CurrentTry = 0;
  38. long readSize;
  39. do
  40. {
  41. // reads the buffer from input stream
  42. [B][I]readSize = segment.InputStream.Read(buffer, 0, buffSize);[/I][/B] [B]!!!!!Ошибка!!!![/B]
  43. // check if the segment has reached the end
  44. if (segment.EndPosition > 0 &&
  45. segment.StartPosition + readSize > segment.EndPosition)
  46. {
  47. // adjust the 'readSize' to write only necessary bytes
  48. readSize = (segment.EndPosition - segment.StartPosition);
  49. if (readSize <= 0)
  50. {
  51. segment.StartPosition = segment.EndPosition;
  52. break;
  53. }
  54. }
  55. }

Решение задачи: «Ссылка на объект не указывает на экземпляр объекта»

textual
Листинг программы
  1. if(segment.InputStream == null) return;

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 4.154 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы