уничтожение переменной или массива в C # - PullRequest
12 голосов
/ 28 апреля 2010

У меня есть переменная или массив, который мне больше не нужен. Как их уничтожить? Извините за нуб-вопрос.

Ответы [ 5 ]

11 голосов
/ 28 апреля 2010

Ты не. Просто оставьте ссылку вне области видимости, и она будет автоматически удалена .

5 голосов
/ 28 апреля 2010

В .Net или любом другом языке для сбора мусора вы просто освобождаете все ссылки, которые у вас есть на этот объект, и сборщик мусора в конечном итоге собирает его. Пример:

   int[] arr = new int[20];
   ....
   // when no longer needed set all references to null
   arr = null;
   // also creating a new object will release the old one automatically if there are no more references to it
   arr = new int[40]; // old array will be garbage collected

Также обратите внимание, что вам не нужно делать это каждый раз, только когда вы явно хотите освободить объект без освобождения его родительского объекта или если ссылка является статическим полем. Также освобождение объектов не требуется для локальных (методических) переменных только для полей классов или статических полей.

2 голосов
/ 28 апреля 2010

в .NET Сборщик мусора сделает это за вас! Но на самом деле это может зависеть от того, что вы имеете в виду, когда пишете, что вам больше не «нужна» ваша переменная

1 голос
/ 28 апреля 2010

Сборщик мусора потрясающий, но объект эффективно уничтожается, когда сборщик мусора собирает объекты, на которые больше нет ссылок: позже ... Поэтому, если вам нужно, чтобы объект был удален немедленно, чтобы был вызван код уничтожения, вы должны реализовать интерфейс IDisposable и вызвать метод Dispose перед разыменованием вашего объекта.

1 голос
/ 28 апреля 2010

.NET имеет встроенный сборщик мусора. Достаточно прекратить ссылаться на массив или переменную, когда вам это не нужно. Нет необходимости в явном вызове уничтожения.

...