Абстрактный класс. Object reference not set to an instance of an object. - C#
Формулировка задачи:
Не работает поиск по заданной дате... Ругается вот на эту строчку:
в main()
Пишет вот это:
прикладываю текстовый файл, который считывается в программе
Листинг программы
- foreach (klient kl in res)
Листинг программы
- 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;
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д