В общем, как сказал Джоэл , это не нужно.
В вашем конкретном примере, однако, это на самом деле бессмысленно . Rectangle
- это тип значения , поэтому установка его на Nothing
не даже влияет на счетчик ссылок объекта; он присваивает новое значение (значение по умолчанию для Rectangle
) вашей переменной myRect
. Это аналогично наличию переменной Integer
и установке ее в 0
в конце метода. Ничего не покупает.
Я должен отметить, что утверждение «Установка любой переменной равной Nothing
[или null
в C #] никогда ничего не достигнет» * является мифом. Вполне возможно, что у вас может быть поле в классе, которое вы также можете установить на null
, если ссылочный объект больше не нужен, но у вас все еще есть ссылка на сам экземпляр класса.
В качестве упрощенного примера предположим, что у вас есть некоторый контейнерный класс, который упаковывает массив T[]
, и вы даете этому контейнеру метод Empty
. В этом методе может иметь смысл установить для внутреннего массива контейнера значение null
, что приведет к нулевым ссылкам на объект массива, что квалифицирует его для сборки мусора. (Затем вы создадите новый массив, когда внешний код в следующий раз попытается добавить T
в коллекцию.) Если вы не установили для поля значение null в Empty
, тогда все равно будет ссылка на массив (т.е. , поле), и поэтому будет использоваться небольшой объем памяти, который вам действительно не нужен.
Как я уже сказал, это упрощенный пример. И, честно говоря, редко когда вам приходится рассматривать подобные сценарии. Я просто подумал, что упомяну это, чтобы у вас не сложилось неверного впечатления, что установка поля в Nothing
буквально никогда ничего не достигнет.
* На самом деле я не цитирую здесь никого конкретного; это просто чрезмерное обобщение, о котором я слышал несколько раз.