все экземпляры класса попадают в рай?

Программирование на Юнити.

все экземпляры класса попадают в рай?

Сообщение Октав 27 фев 2021, 13:41

Я создал класс не наследованный от монобехевера
Синтаксис:
Используется csharp
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class MyClass
{
    bool a = true;
    void MyMethod(float b)
    {
        //......
    }
}
 

а потом где-нибудь создал динамический массив с экземплярами этого класса
Синтаксис:
Используется csharp
public List<MyClass> listMyClass = new List<MyClass>();
MyClass _myClass = new MyClass();
listMyClass.Add(_myClass);
 

а потом где-нибудь я удалил из динамического массива этот экземпляр и на него ни где не осталось ссылок, например удаление произвел сам этот экземпляр передав собственную ссылку
Синтаксис:
Используется csharp
listMyClass.Remove(this);
 

то он существует или нет? Что происходит с классом который сам себя удалил из динамического списка? А в коде больше на него не осталось ссылок. Он весит где то в небытие?
Последний раз редактировалось Октав 27 фев 2021, 14:47, всего редактировалось 4 раз(а).
Аватара пользователя
Октав
UNIверсал
 
Сообщения: 380
Зарегистрирован: 19 янв 2012, 22:02
Откуда: Красноярский край

Re: все экземпляры класса попадают в рай?

Сообщение Alkos26Rus 27 фев 2021, 14:19

По идее уборщик мусора должен очистить память выделенную под него, но это не точно
Аватара пользователя
Alkos26Rus
Адепт
 
Сообщения: 1640
Зарегистрирован: 26 ноя 2020, 17:52
Откуда: Москва

Re: все экземпляры класса попадают в рай?

Сообщение tchezarre 08 мар 2021, 12:47

Точно-точно. Вот такие "висячие" и называются "мусор". За ними следит/удаляет GC.
tchezarre
UNец
 
Сообщения: 25
Зарегистрирован: 23 янв 2014, 06:44
Откуда: Владивосток


Вернуться в Скрипты

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 12