|
14 / 14 / 1
Регистрация: 21.10.2010
Сообщений: 462
|
|
Как уничтожить класс?15.12.2017, 11:50. Показов 2495. Ответов 10
Метки нет (Все метки)
Как сделать, чтобы созданный мною класс мог уничтожить самого себя? Что нужно сделать внутри класса, чтобы он перестал существовать?
0
|
|
| 15.12.2017, 11:50 | |
|
Ответы с готовыми решениями:
10
Как уничтожить процесс? как уничтожить нить в процессе? [SL] ContextMenu. Как уничтожить? |
|
14314 / 9399 / 1355
Регистрация: 21.01.2016
Сообщений: 35,435
|
|
| 15.12.2017, 11:52 | |
|
Злобный Зайц, этим занимается сборщик мусора. Вы такое сделать не можете.
0
|
|
|
Администратор
|
|
| 15.12.2017, 12:09 | |
|
Злобный Зайц, для этого нужно "выйти из Матрицы" и повторить то что делает сборщик мусора. Необходимо найти все ссылки на экземпляры своего класса и занулить их. Затем удалить их из памяти. Это интересная (и сложная) задача если есть время и желание изучить внутренности CLR. Практическая польза данного решения вызывает сомнения. Зачем тебе это понадобилось?
0
|
|
|
14 / 14 / 1
Регистрация: 21.10.2010
Сообщений: 462
|
|
| 15.12.2017, 12:24 [ТС] | |
|
Класс подписан на все события формы. У меня создаются его экземпляры, допустим, по нажатию кнопки. Каждый создаёт на канве некоторое изображение. Я могу выделять мышью любой из них и таскать по экрану. Беда в том, что насоздавать-то я их могу хоть тыщщу, а вот удалить - никак. Хотелось, чтобы можно было убить экземпляр, выделив его и одновременно нажав "Delete". Как ещё можно убить все ссылки на него? И где, вообще, эти ссылки живут? Если бы я добавлял их в массив, можно быть бы там же и удалять. Но это придётся, опять же, делать извне?
0
|
|
|
14314 / 9399 / 1355
Регистрация: 21.01.2016
Сообщений: 35,435
|
|
| 15.12.2017, 12:29 | |
|
Злобный Зайц, выглядит как дико хреновая архитектура. Тут не в удалении класса проблема...
Добавлено через 1 минуту А так, просто отписывайте класс от всех событий и за ним придёт сборщик мусора.
1
|
|
|
14 / 14 / 1
Регистрация: 21.10.2010
Сообщений: 462
|
|
| 15.12.2017, 12:38 [ТС] | |
|
Согласен. Архитектор из меня хреновый. Не могли бы вы вкратце набросать > приличную архитектуру? Не уверен только, что сумею толково изложить задачу. Мне нужно, чтобы экземпляры класса добавлялись, отображались, реагировали бы на клаву и мышь и их бы можно быть не только плодить, но и уничтожать прицельно.
С отпиской щас поупражняюсь и доложу.
0
|
|
|
14314 / 9399 / 1355
Регистрация: 21.01.2016
Сообщений: 35,435
|
|
| 15.12.2017, 12:40 | |
|
Злобный Зайц, подписываться у вас должен ОДИН объект. Объект управляющий другими. А объекты-картинки должны пассивно лежать в коллекции в которой управляющий их будет искать по координатам. Удаление таких объектов - просто выписка их из коллекции.
1
|
|
|
14 / 14 / 1
Регистрация: 21.10.2010
Сообщений: 462
|
|
| 15.12.2017, 12:57 [ТС] | |
|
Фокус с отпиской мне (видимо по неопытности) как-то > по душе. В коллекции оно у меня раньше накапливалось и там же удалялось. Но мне подумалось - зачем плодить сущности без необходимости, потом где-то следить за поведением экземпляра класса и удалять его, когда надо. Раз уж они могут плодиться без всякого внешнего накопителя, пусть бы сами и удалялись бы.
Щас сделал отписку при удалении. Отображаться перестаёт. А как бы убедиться, что экземпляра уже не существует?
0
|
|
|
14314 / 9399 / 1355
Регистрация: 21.01.2016
Сообщений: 35,435
|
|
| 15.12.2017, 12:59 | |
|
0
|
|
|
14 / 14 / 1
Регистрация: 21.10.2010
Сообщений: 462
|
|
| 15.12.2017, 13:01 [ТС] | |
|
Этого я пока не умею. И даже не знаю, что это такое.
0
|
|
|
14314 / 9399 / 1355
Регистрация: 21.01.2016
Сообщений: 35,435
|
|
| 15.12.2017, 13:02 | |
|
Злобный Зайц, погуглите. Тема нужная и полезная.
1
|
|
| 15.12.2017, 13:02 | |
|
Помогаю со студенческими работами здесь
11
Как правильно уничтожить элемент формы Как уничтожить экземпляр класса (объект)? Как уничтожить форму? Как уничтожить переменную?
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Программный контроль заполнения реквизита табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача: реализовать контроль заполнения реквизита "ПричинаСписания". . .
|
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение:
DISM / Online / Add-Capability / CapabilityName:WMIC~~~~
Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
|
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача: при создании документов установить период списания автоматически. . .
|
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2.
Задача: вывести данные из ТЧ нетипового документа. . .
|
|
Программное заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению.
На форме документа создается. . .
|
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
|
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
|
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
|