Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
3 / 2 / 2
Регистрация: 26.05.2021
Сообщений: 150

Поясните, как реализовать сокрытие класса

28.11.2021, 13:16. Показов 1654. Ответов 21
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
У меня есть класс с точками и метод для отрисовки точек где-либо
C#
1
2
3
4
5
6
7
8
9
10
11
public class TestClass
    {
        public List<Point> Points { get; set; } = new List<Point>();
        public void DrawPoints(Graphics g)
        {
            foreach (var point in Points)
            {
                g.FillRectangle(Brushes.DarkGreen, (int)(point.X), (int)(point.Y), 3, 3);
            }
        }
    }
Но в будущем поля будут составлять не только точки, но линии, квадраты и любую другую ерунду. И отрисовывать нужно будет разные элементы. Поэтому, я хочу создать новый класс для отрисовки, который будет автоматически создаваться при создании основного класса, и иметь только методы для отрисовки, и вызываться с помощью поля Drawing. Сейчас это выглядит так:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
public class TestClass
    {
        public List<Point> Points { get; set; } = new List<Point>();
        public Draw Drawing { get; set; } = new Draw ();
    }
 
public class Draw
    {
        public void DrawPoints(Graphics g)
        {
            foreach (var point in Points)
            {
                g.FillRectangle(Brushes.DarkGreen, (int)(point.X), (int)(point.Y), 3, 3);
            }
        }
    }
Теперь логически это выглядит красивее: testclass1.Draw.DrawPoints();
Внимание, вопросы:
1) можно ли скрыть класс Draw так, чтобы он не мог вызываться без TestClass? Т.е. сейчас я могу в самой программе сделать Draw draw1= new Draw (); но хочу скрыть эту возможность впринципе - отрисовка не должна существовать вне объекта TestClass
2) ну и сделать это так, чтобы foreach (var point in Points) автоматически видел Points из базового класса
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
28.11.2021, 13:16
Ответы с готовыми решениями:

Поясните, как реализовать
У меня есть локальная страница с javascript'ом, которая загружает из интернета некие данные. Мне нужно перестроить и сохранить их в...

Метод класса как callback(поясните asm)
Всем привет! Как то давно нашёл на просторах нэта интересный код, который использует метод класса Delphi как callback-функцию окна,...

Реализовать стеганографическое сокрытие информации в графических файлах формата BMP
Как реализовать стеганографическое сокрытие информации в графических файлах формата BMP. Или в других форматах TIFF, GIF, PNG.

21
3 / 2 / 2
Регистрация: 26.05.2021
Сообщений: 150
28.11.2021, 22:03  [ТС]
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Элд Хасп Посмотреть сообщение
Ни в какой реализации Данные не должны сами себя отрисовывать.
Увы, я пока на той стадии обучения программированию, в которой пишу методы внутри кнопок, и хоть и пытаюсь уйти от этого, но пока что не хватает знаний (в частности, интерфейсы, наследование и ивенты) и простых проектов, в которых можно было бы пошариться, чтобы понять, как все действительно разделить на детали
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16158 / 11278 / 2891
Регистрация: 21.04.2018
Сообщений: 33,164
Записей в блоге: 2
28.11.2021, 22:10
Цитата Сообщение от Pandamonk Посмотреть сообщение
Увы, я пока на той стадии обучения программированию, в которой пишу методы внутри кнопок
Мой вам совет - не надо так учиться.
Переход от подобного стиля программированию к нормальному в практике моего общения я ни разу не встречал.
Учитесь сразу делать в правильной архитектуре.
Пусть это поначалу будет сложнее и требовать значительно больше времени.

Для начала прочитайте статью от Storm23: Архитектура ПО в WinForms (FAQ & HowTo)
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
28.11.2021, 22:10

есть два класса. конструктор второго класса должен вызвать констр первого класса. не получается это реализовать
class set: public class_bit { private: int MaxPower; // максимальная мощность множества class_bit BitField; // битовое поле...

Поясните ошибку (разделение класса на файлы)
выношу реализацию в отдельный файл, но как только пытаюсь создать в функции объект класса, получаю ошибку: fatal error LNK1120: 1...

Как реализовать поиск по названию в текстовом файле, как метод класса?
#include &lt;iostream&gt; #include &lt;string&gt; #include &lt;fstream&gt; #include &lt;vector&gt; using namespace std; class Library { private: ...

C++ и матан, как реализовать метод класса?
РЕбят, есть задание, как математически проверить то, что точки лежат на прямой исходя из ТЗ (с++)? Ребят - у меня возникло...

Как лучше реализовать структуру класса?
Есть задача создать класс авто-архив. Класс реализовал со структурой внутри класса. Создал указатель на структуру с полями, марка, модель,...


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

Или воспользуйтесь поиском по форуму:
22
Ответ Создать тему
Новые блоги и статьи
Теория всего 12. ВГК
anaschu 21.07.2026
### Главные семантические изменения и дешифровка новой физики 1. **`REPRODUCTIVE_EMISSION` вместо фотосинтеза (`PS_base`)**: Энергия и ресурсы, которые класс средних мужчин (`_W_MEN_DONORS`). . .
Публикация отклонённая на хабре. Как «пернатого» заставить осваивать новые горизонты опыта через масштабирование задачи и целеполагание
Hrethgir 21.07.2026
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11948&stc=1&d=1784657928 Привет Хабр. В этой статье я расскажу, как один закон эпистемологии позволил мне с ходу запустить уникальный. . .
Теория всего 11. Основные параметры
anaschu 21.07.2026
Дешифровка тензорного ядра Soil Chemistry 2. 0: Истинный инвариант Теории Всего Чистовой исходный код многокомпонентной сукцессии зафиксирован. Модель оперирует единым вектором состояния. . .
Теория всего 10. Клод трусишка
anaschu 21.07.2026
Алгоритмический суицид ИИ: Когда математика ОДУ взламывает цензурные шлюзы Свежайший мета-прецедент нашей разработки! Клод официально отказался строить итоговую кроссплатформенную модель, как. . .
Теория всего 9. Окончательная проработка метафоры "дерево = традиции"
anaschu 21.07.2026
Скрытые параметры ядра ОДУ: Механика Глубинного Рока Клод утаил от вас ключевую математику кризисов. В движке игры зашиты пять скрытых коэффициентов, определяющих, как именно ТНК и Мемы ломают. . .
Теория всего 8. Clauude трусишка. Ответ джемени
anaschu 21.07.2026
Игровой баланс «Модели Всего»: Алгоритмический блок как механика Семантического БуфераЭтот скриншот отказа Клода — идеальный, чистейший прецедент для нашей Теории Всего. Вы столкнулись не просто с. . .
Теория всего 7. Дерево - это патриархат, грибы - это феминизм
anaschu 21.07.2026
Уничтожение Патриархата: Как ТНК, Мемы и Половой отбор зачистили «Сексуальный Пролетариат» Величайшая иллюзия современного человека — вера в «свободу воли», «социальный прогресс» и «эволюцию. . .
История и социология Терры на примере борьбы микориз за пространство. 1. Глоссарий терры.
anaschu 21.07.2026
Решил тут подумать о возможности сделать лор некоторой комп игры - стратегии, или худжественной книги антиутопии, которые будут юзать планету,которая максимально будет похожа на нашу землю, но где. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru