Абстрактный класс. Object reference not set to an instance of an object. - C#

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

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

Не работает поиск по заданной дате... Ругается вот на эту строчку:
 foreach (klient kl in res)
в main() Пишет вот это:
Object reference not set to an instance of an object.
using System;
using System.Collections.Generic;
using System.Text;
using System.IO;
using System.Text.RegularExpressions;

namespace ConsoleApplication15
{
    class Program
    {
        static void Main(string[] args)
        {
            klient[] k = read();
            foreach (klient kl in k)
            {
               kl.show();
                Console.WriteLine("-----------------------");
            }
            klient[] res = null;
            Console.WriteLine("Введите нужную вам дату:");
            string b = Console.ReadLine();
           
            foreach (klient kl in res)
            {
                kl.show();
                Console.WriteLine("-----------------------");
            }
            Console.ReadKey();
        }
 
        static klient[] read()
        {
            StreamReader fr = new StreamReader("file.txt", Encoding.GetEncoding(1251));
            string str = fr.ReadToEnd();
            string[] s = str.Split('\n');
 
            klient[] kl = new klient[s.Length / 2];
            Regex r1=new Regex("vklad");
            Regex r2 = new Regex("kredit");
            Regex r3 = new Regex("organiz");
            for(int i=0; i<s.Length; i+=2)
            {
                if (r1.IsMatch(s[i]))
                    kl[i / 2] = new vklad(s[i + 1]);
 
                if (r2.IsMatch(s[i]))
                    kl[i / 2] = new kredit(s[i + 1]);
 
                if (r3.IsMatch(s[i]))
                    kl[i / 2] = new organiz(s[i + 1]);
            }
            fr.Close();
            return kl;
        }

        static klient[] search(string a)
        {
            klient[] kl = read();
            int n=0, count = 0;
            for(int i=0; i < kl.Length;++i)
                if (kl[i].Data() == a)
                {
                    ++n;
                }
            klient[] result = new klient[n]; 
 
            for (int i=0; i < kl.Length; ++i)
                if (kl[i].Data() == a)
                {
                    result[count] = kl[i];
                    ++count;
                }
            return result;
        }

    }
}
 
public abstract class klient
{
    public abstract void show();
    public abstract string Data();
    protected string name;
    protected string data;
    protected int razmer;
    protected int procent;
}
 
public class vklad : klient
{
 
    public vklad(string s)
    {
        string[] values = s.Split(Convert.ToChar(9));
        this.name = values[0];
        this.data = values[1];
        this.razmer = Convert.ToInt32(values[2]);
        this.procent = Convert.ToInt32(values[3]);
    }
 
    public override void show()
    {
        Console.WriteLine("Фамилия: {0}", name);
        Console.WriteLine("Дата открытия вклада: {0}", data);
        Console.WriteLine("Размер вклада: {0}", razmer);
        Console.WriteLine("Процент: {0}", procent);
 
    }
 
    public override string Data()
    {
        return data;
    }
}
 
public class kredit : klient
{
    private int ostatok;
 
    public kredit(string s)
    {
        string[] values = s.Split(Convert.ToChar(9));
        this.name = values[0];
        this.data = values[1];
        this.razmer = Convert.ToInt32(values[2]);
        this.procent = Convert.ToInt32(values[3]);
        this.ostatok = Convert.ToInt32(values[4]);
 
    }
 
    public override void show()
    {
        Console.WriteLine("Фамилия: {0}", name);
        Console.WriteLine("Дата выдачи кредита: {0}", data);
        Console.WriteLine("Размер кредита: {0}", razmer);
        Console.WriteLine("Процент: {0}", procent);
        Console.WriteLine("Остаток: {0}", ostatok);
    }
 
    public override string Data()
    {
        return data;
    }
}
 
public class organiz : klient
{
    private int nomer;
    private int summa;
 
    public organiz(string s)
    {
        string[] values = s.Split(Convert.ToChar(9));
        this.name = values[0];
        this.data = values[1];
        this.nomer = Convert.ToInt32(values[2]);
        this.summa = Convert.ToInt32(values[3]);
    }
 
    public override void show()
    {
        Console.WriteLine("Название: {0}", name);
        Console.WriteLine("Дата открытия счета: {0}", data);
        Console.WriteLine("Номер счета: {0}", nomer);
        Console.WriteLine("Сумма на счету: {0}", summa);
       
    }
 
    public override string Data()
    {
        return data;
    }
}
прикладываю текстовый файл, который считывается в программе

Решение задачи: «Абстрактный класс. Object reference not set to an instance of an object.»

textual
Листинг программы
klient[] res = null;

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


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

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

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