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

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

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

Здравствуйте! При написании кода у меня возникла проблема, а исправить не получается. В строке "
readSize = segment.InputStream.Read(buffer, 0, buffSize);
" выдает ошибку "Ссылка на объект не указывает на экземпляр объекта". Вот фрагмент кода :
 
                                        ........
private void StartSegments(int segmentCount, Stream inputStream)
        {
                                            .....
            for (int i = 0; i < calculatedSegments.Length; i++)
            {
                Segment segment = new Segment();
                if (i == 0)
                {
                    segment.InputStream = inputStream;
                }
 
                segment.Index = i;
                segment.InitialStartPosition = calculatedSegments[i].StartPosition;
                segment.StartPosition = calculatedSegments[i].StartPosition;
                segment.EndPosition = calculatedSegments[i].EndPosition;
 
                segments.Add(segment);
            }
 
            RunSegments();
        }
      private void SegmentThreadProc(object objSegment)
        {
            Segment segment = (Segment)objSegment;
 
            segment.LastError = null;
                                          .........
 
                int buffSize = 8192;
                byte[] buffer = new byte[buffSize];
 
                segment.State = SegmentState.Connecting;
 
                // raise the event 
                OnSegmentStarting(segment);
                segment.CurrentURL = this.resourceLocation.URL;
using (segment.InputStream)
                {
                    // raise the event
                    OnSegmentStarted(segment);
 
                    // change the segment state
                    segment.State = SegmentState.Downloading;
                    segment.CurrentTry = 0;
 
                    long readSize;
                    
                    do
                    {
                        // reads the buffer from input stream
                        [B][I]readSize = segment.InputStream.Read(buffer, 0, buffSize);[/I][/B]  [B]!!!!!Ошибка!!!![/B]
 
                        // check if the segment has reached the end
                        if (segment.EndPosition > 0 &&
                            segment.StartPosition + readSize > segment.EndPosition)
                        {
                            // adjust the 'readSize' to write only necessary bytes
                            readSize = (segment.EndPosition - segment.StartPosition);
                            if (readSize <= 0)
                            {
                                segment.StartPosition = segment.EndPosition;
                                break;
                            }
                   }
                        }

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

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

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

13   голосов , оценка 4.154 из 5
Похожие ответы