Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.56/18: Рейтинг темы: голосов - 18, средняя оценка - 4.56
0 / 2 / 0
Регистрация: 24.11.2017
Сообщений: 33

Поиск в массиве абстрактных классов

20.02.2018, 21:41. Показов 3577. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый вечер, подскажите, у меня есть абстрактный класс назавем его X(выводит на экран), он имеет дочерний класс Y >Z>W. соответственно создаю массив на создание объектов, вопрос собственно в том как осуществить поиск по этим трем объектам (допустим слово "S")
1
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
20.02.2018, 21:41
Ответы с готовыми решениями:

Список абстрактных классов
Здравствуйте! Прошу помочь с одной проблемой. Суть проблемы в следующем - есть 2 разных класса (Например, Photo и Music). Реализация этих...

Использование абстрактных классов
Простите заранее за нубский вопрос. Давно ничего не программировал, а тут понадобилось. Скачал библиотеку численных методов. Там...

Объекты и экземпляры абстрактных классов
Здравствуйте, помогите, пожалуйста, разобраться: Суть в чем - экземпляры абстрактных классов создать нельзя(прописано во всех книгах)....

4
3566 / 2507 / 1174
Регистрация: 14.08.2016
Сообщений: 8,219
20.02.2018, 21:56
лучше код покажи
1
0 / 2 / 0
Регистрация: 24.11.2017
Сообщений: 33
20.02.2018, 22:02  [ТС]
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
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace _3лаба
{
    abstract class Izdanie //абстрактный класс
    {
        abstract public void Show();//абстрактный метод
 
    }
 
    class Kniga : Izdanie //производный класс от абстрактного
    {
        protected string name;
        protected string Fio_avtora;
        protected int god_izd;
        protected string izdat;
        public Kniga(string name, string Fio_avtora, int god_izd, string izdat)
        {
            this.name = name;
            this.Fio_avtora = Fio_avtora;
            this.god_izd = god_izd;
            this.izdat = izdat;
        }
        public override void Show() //переопределение абстрактного метода
        {
            Console.WriteLine("Книга: ({0}, {1},{2},{3})", name, Fio_avtora, god_izd, izdat);
        }
    }
    class Stat : Izdanie
    {
        protected string name;
        protected string Fio_avtora;
        protected string name_mag;
        protected int nomer_mag;
        protected int god_izd;
 
        public Stat(string name, string Fio_avtora, string name_mag, int nomer_mag, int god_izd)
        {
            this.name = name;
            this.Fio_avtora = Fio_avtora;
            this.name_mag = name_mag;
            this.nomer_mag = nomer_mag;
            this.god_izd = god_izd;
        }
        public override void Show() //переопределение абстрактного метода
        {
            Console.WriteLine("Статья: ({0}, {1},{2},{3},{4})", name, Fio_avtora, name_mag, nomer_mag, god_izd);
        }
        class ElektRes : Izdanie
        {
            protected string name;
            protected string Fio_avtora;
            protected string silka;
            protected string annatoc;
 
            public ElektRes(string name, string Fio_avtora, string silka, string annatoc)
            {
                this.name = name;
                this.Fio_avtora = Fio_avtora;
                this.silka = silka;
                this.annatoc = annatoc;
 
            }
            public override void Show() //переопределение абстрактного метода
            {
                Console.WriteLine("Эектроный ресурс: ({0}, {1},{2},{3})", name, Fio_avtora, silka, annatoc);
            }
 
        }
                    
            
            
            class Program
            {
 
 
                static void Main()
                {
 
                    Izdanie[] Ob = new Izdanie[4]; //массив ссылок
                                                   //заполнения массива ссылками на объекты производных классов
                    Ob[0] = new Kniga("Тихий берег", "Муровьев", 1985, "Союзпечать");
                    Ob[1] = new Stat("заметки ученого", "Воробьев", "Ботаник", 2, 1990);
                    Ob[2] = new ElektRes("Любопытные", "Голубев", "Интернет", "Книга про животных");
 
                    foreach (Izdanie a in Ob) //просмотр массива
                    {
 
                        a.Show();
 
                    }
 
                }
 
            }
        }
    }
}
Добавлено через 3 минуты
Ну вот как мне Найти автора Голубев
1
 Аватар для 6elka1703
91 / 85 / 27
Регистрация: 29.10.2016
Сообщений: 928
20.02.2018, 23:29
xore4ek3, просто сделай три разных объекта класса kniga,stat,ElektRes и работай с ними
1
Эксперт .NET
 Аватар для Даценд
5878 / 4755 / 2939
Регистрация: 20.04.2015
Сообщений: 8,361
21.02.2018, 00:07
Лучший ответ Сообщение было отмечено xore4ek3 как решение

Решение

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
using System;
 
namespace _3лаба
{
    abstract class Izdanie //абстрактный класс
    {
        abstract public void Show();//абстрактный метод
        protected string name;
        protected string Fio_avtora;
        public bool SameFIO(string fio)
        {
            return fio == Fio_avtora;
        }
    }
 
    class Kniga : Izdanie //производный класс от абстрактного
    {
        //protected string name;
        //protected string Fio_avtora;
        protected int god_izd;
        protected string izdat;
        public Kniga(string name, string Fio_avtora, int god_izd, string izdat)
        {
            this.name = name;
            this.Fio_avtora = Fio_avtora;
            this.god_izd = god_izd;
            this.izdat = izdat;
        }
        public override void Show() //переопределение абстрактного метода
        {
            Console.WriteLine("Книга: ({0}, {1},{2},{3})", name, Fio_avtora, god_izd, izdat);
        }
    }
    class Stat : Izdanie
    {
        //protected string name;
        //protected string Fio_avtora;
        protected string name_mag;
        protected int nomer_mag;
        protected int god_izd;
 
        public Stat(string name, string Fio_avtora, string name_mag, int nomer_mag, int god_izd)
        {
            this.name = name;
            this.Fio_avtora = Fio_avtora;
            this.name_mag = name_mag;
            this.nomer_mag = nomer_mag;
            this.god_izd = god_izd;
        }
        public override void Show() //переопределение абстрактного метода
        {
            Console.WriteLine("Статья: ({0}, {1},{2},{3},{4})", name, Fio_avtora, name_mag, nomer_mag, god_izd);
        }
        class ElektRes : Izdanie
        {
            //protected string name;
            //protected string Fio_avtora;
            protected string silka;
            protected string annatoc;
 
            public ElektRes(string name, string Fio_avtora, string silka, string annatoc)
            {
                this.name = name;
                this.Fio_avtora = Fio_avtora;
                this.silka = silka;
                this.annatoc = annatoc;
 
            }
            public override void Show() //переопределение абстрактного метода
            {
                Console.WriteLine("Эектроный ресурс: ({0}, {1},{2},{3})", name, Fio_avtora, silka, annatoc);
            }
 
        }
 
 
 
        class Program
        {
 
 
            static void Main()
            {
 
                Izdanie[] Ob = new Izdanie[3]; //массив ссылок
                                               //заполнения массива ссылками на объекты производных классов
                Ob[0] = new Kniga("Тихий берег", "Голубев", 1985, "Союзпечать");
                Ob[1] = new Stat("заметки ученого", "Воробьев", "Ботаник", 2, 1990);
                Ob[2] = new ElektRes("Любопытные", "Голубев", "Интернет", "Книга про животных");
 
                foreach (Izdanie a in Ob) //просмотр массива
                {
                    if (a.SameFIO("Голубев"))
                        a.Show();
 
                }
                Console.ReadKey();
            }
 
        }
    }
}
2
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
21.02.2018, 00:07
Помогаю со студенческими работами здесь

Отличие Абстрактных классов от Интерфейсов
Может кто определить по основным пунктам отличия Абстрактных классов от Интерфейсов? Читал литературу, этот момент остался не до конца...

Список не абстрактных классов, унаследовавшихся от данного
Здравствуйте. Допустим, есть абстрактный класс Shape, от которого наследуются несколько других абстрактных (напр., OneColorShape) и не...

Чем интерфейсы отличаются от абстрактных классов
Что интерфейс может содержать(или же если проще сказать - что не может содержать) в отличии от абстрактного класса? И верно ли следующее...

Классы Книга и Статья с применением абстрактных классов
Выполнить любые 3 (из 6) задания на C# (тема была разделена на части) 2. Создайте консольное приложение. В нем разработайте...

Структуры. Можно ли наследовать как от абстрактных классов?
я тут немного почитал о структурах и понял следующее: они свои объекты копируют, а не передают по ссылке. Это помогает минимизировать...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru