Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
c# New item to list box
|
|||
|---|---|---|---|
|
#18+
Залез в один код, и вижу Код: c# 1. В него идёт добавление Код: c# 1. А потом, делается Код: c# 1. Старый создано - добавленный item теряется ведь? И ведёт это к утечке памяти. Или он потом удаляется, при выходе из метода? Или всё же счётчик ссылок не уменьшается,и он не удаляется ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2018, 13:14 |
|
||
|
c# New item to list box
|
|||
|---|---|---|---|
|
#18+
Если заменяемый Item не держит ссылок на какие-либо другие объекты (в т.ч. через event handler'ы), и никакие другие объекты не держат ссылок на заменяемый Item, то этот Item будет уничтожен при очередной сборке мусора. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2018, 16:52 |
|
||
|
c# New item to list box
|
|||
|---|---|---|---|
|
#18+
А как сборщик мусора поймёт, что при присвоение нового item Код: c# 1. Созданный ранее "new Item()" Код: c# 1. Больше нигде не используется ? Ведь мы в наглую переприсвоили элемент - List'a ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2018, 17:45 |
|
||
|
c# New item to list box
|
|||
|---|---|---|---|
|
#18+
Ну так ссылка на старый объект пропадет. List - это просто оболочка над массивом. В данном случае - массивом ссылок. Перезаписали ссылку в элементе - всё, нет старой ссылки ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2018, 17:48 |
|
||
|
c# New item to list box
|
|||
|---|---|---|---|
|
#18+
Я просто думал по логике, что счётчик ссылок хранится в самом - созданном объекте. И если молча, задать массиву - новый элемент, то счётчик ссылок, у созданного "new Item()" Код: c# 1. Не уйдёт в DEC и при сборщике муссора, он будет думать что всё ещё этот "new Item()" используется. Хотя элемент уже где - то плавает... Но если я не прав, и он всё таки как - то удаляет, ранее созданный "new Item()" после внезапного присвоения нового - существующего элемента на старое место. То это хорошо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2018, 18:01 |
|
||
|
c# New item to list box
|
|||
|---|---|---|---|
|
#18+
ГирлионайльдоЯ просто думал по логике, что счётчик ссылок хранится в самом - созданном объекте. И если молча, задать массиву - новый элемент, то счётчик ссылок, у созданного "new Item()" Нет никакого счетчика ссылок - это же не COM. В .Net факт того, что содержимое объекта в куче при сборке мусора можно удалить, определяется на этапе marking этой самой сборки мусора. Почитайте Рихтера, у него подробно описано, как это делается. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2018, 18:19 |
|
||
|
c# New item to list box
|
|||
|---|---|---|---|
|
#18+
ГирлионайльдоЯ просто думал по логике, что счётчик ссылок хранится в самом - созданном объекте.Не стоит тащить в .NET логику из каких-то других языков. По GC полно материала, и вкратце, и подробного, почитайте на досуге ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2018, 19:03 |
|
||
|
|

start [/forum/topic.php?fid=20&fpage=29&tid=1399285]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
47ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
44ms |
get tp. blocked users: |
2ms |
| others: | 12ms |
| total: | 149ms |

| 0 / 0 |
