Ссылка на объект не указывает на экземпляр объекта - 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;