Я довольно новичок в C #, но я постараюсь попробовать , чтобы сделать это быстро! ;)
Это просто теоретическая ситуация, но представьте, что:
I) Один из них имеет класс «ClassA» с «ClassB» внутри и «ClassC» внутри «ClassB».
II) В ClassA есть метод, который вызывается. Сам метод (не знаю имени для этого) «создает» новый ClassB с уже существующей переменной classB. Следующим образом:
/*CLASS A*/
ClassA
{
ClassB classB;
ClassA()
{
classB = new ClassB();
}
MethodA()
{
classB = new ClassB();
}
// Other Methods...
}
/*CLASS B*/
ClassB
{
ClassC classC;
ClassB()
{
classC = new ClassC();
}
// Methods...
}
/*CLASS C*/
ClassC
{
// Loads of variables being used...
}
Итак, я хочу знать:
a) Что будет с памятью в классе B? Будет ли такое же пространство в куче использоваться для класса или будет выделено новое пространство? Если последний случай, GC как-то освободит предыдущую память?
b) Каким будет результат вышеприведенного, что произойдет с classC, загруженным переменными, жующими память?
Буду весьма признателен за прямые ответы или простые ссылки на чтение. Я пытался найти ответ для себя, но, похоже, никто не объясняет такие абсурдные (?) Ситуации.
Прежде чем вы начнете рассуждать о происхождении этого вопроса, я вам уже скажу. Я действительно поставил себя в похожую ситуацию, которая примерно такова:
Так что это трехуровневое приложение иногда изменяется между подклассами 1 и 2, которые оба управляют «сценой». В этих «сценах» есть несколько классов, помогающих управлять вещами (как обычно). Это (по моим мыслям) невозможно найти.
Проблема в том, что и подкласс 1, и подкласс 2 могут потреблять немного памяти и используют некоторые «ресурсы». Поэтому я хотел бы стереть, да, вы слышали меня, стереть их из существования и затем заново создать их позже. Я немного прочитал, но не могу найти решение. (Как уже говорилось, я новичок в C # и все это .Net вещь управляемая). Любые предложения по этому вопросу, безусловно, будут оценены.
Хорошо, я написал немного больше, чем планировалось, но это все! С нетерпением ждем некоторого понимания этого! :)
С уважением, Роберт