1 / 1 / 6
Регистрация: 26.04.2009
Сообщений: 234
1

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

25.10.2010, 11:30. Показов 2526. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Не работает поиск по заданной дате... Ругается вот на эту строчку:

C#
1
 foreach (klient kl in res)
в main()

Пишет вот это:
C#
1
Object reference not set to an instance of an object.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
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;
    }
}
прикладываю текстовый файл, который считывается в программе
Вложения
Тип файла: txt file.txt (136 байт, 16 просмотров)
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.10.2010, 11:30
Ответы с готовыми решениями:

Ошибка System.NullReferenceException : Object reference not set to an instance of an object
Совсем недавно начал учить C# . Наткнулся на ресурс codewars,где нужно по условию написать код и...

HtmlAgilityPack выбрасывает исключение Object reference not set to an instance of an object
Помогите пожалуйста разобраться. Есть такой html код Хочу получить строку &quot;Начало&quot;. Пишу такой...

Вывести переменную типа string в консоль: Object reference not set to an instance of an object
Вот такой сабж. Пытаюсь вывести переменную типа стринг в консоль Сначала, как обычно for...

При streamreader.ReadLine() выскакивает ошибка object reference not set to an instance of object
Здраствуйте, у меня вдруг появилась такая проблема, что при streamreader.ReadLine() выскакивает...

2
328 / 312 / 68
Регистрация: 05.11.2009
Сообщений: 712
25.10.2010, 11:34 2
у вас в методе Main() ошибка
C#
1
klient[] res = null;
вы пытаетесь получить значения в foreach из null
1
1 / 1 / 6
Регистрация: 26.04.2009
Сообщений: 234
25.10.2010, 11:37  [ТС] 3
Цитата Сообщение от kuroiryuu Посмотреть сообщение
у вас в методе Main() ошибка
C#
1
klient[] res = null;
вы пытаетесь получить значения в foreach из null
ага, все разобрался... функцию не вызвал! спасибо
0
25.10.2010, 11:37
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.10.2010, 11:37
Помогаю со студенческими работами здесь

Программа не выполняет условие (fileInput != null) и выдает Object reference not set to instance of an object
Доброго времени суток, форумчане! Помогите бедному студенту решить вот такую проблему: Программа...

System.NullReferenceException: Object reference not set to an instance of an object
Проблема заключается вот в чем Написал код на c# на компьютере, переношу его на мобильную...

Проблема со свойствами: Object reference not set to an instance of an object
Здравствуйте, пишу вот такой код: using System; using System.Collections.Generic; using...

Непонятная ошибка: Object reference not set to an instance of an object
Код программы: using System; using System.Collections.Generic; using System.Drawing; using...

NullReferenceException: Object reference not set to an instance of an object
Добрый день, выдаёт ошибку. Unity 2D NullReferenceException: Object reference not set to an...

Ошибка Object reference not set to an instance of an object
На форме есть DataGridView. Есть код, который выдает ошибку &quot;Object reference not set to an...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru