Что происходит, когда я вызываю один и тот же метод дважды и в нем он создает экземпляр одного и того же объекта. Предположим:Что происходит, когда я вызываю тот же метод дважды
void doSomethingMethod()
{
myClass Object1 = new myClass();
...
}
Main()
{
doSomethingMethod(); //<-- first call to the method
.
.
.
doSomethingMethod(); //<-- second call to the method
}
Что происходит с объектом класса, когда я вызываю этот метод во второй раз? Является ли он заменен новым объектом? Будут ли скопированы свойства в существующем объекте на новый объект?
Ваш вопрос не имеет большого смысла. Ваша переменная 'class' (незаконный C#, так как это зарезервированное слово) относится к новому объекту с каждым вызовом метода. Скорее всего, к тому времени, когда вы перейдете ко второму вызову метода, это будет долгое время, но в любом случае он не будет доступен никаким кодом после этого времени, если вы не назначите ссылку на более постоянную переменную. Как он будет _replaced_, если никто не сможет получить к нему доступ вообще? Вы даже попробовали отладить интересующий вас сценарий? –
Как вы получили код, работающий с присвоением переменной переменной «класс». Вместо этого вам нужно использовать «@class». И если вы хотите заменить объект «@class» во втором экземпляре, сделайте объявление global (поместите «класс myClass» в глобальную область.). В вашем случае он будет доступен только в doSomethingMethod, и после того, как элемент управления выйдет из этого метода, ссылка на переменную памяти @class будет использоваться только сборщиком мусора. – ATP