Ссылка, установленная на null
, является локальной копией ссылки form2
. Поскольку ссылка передается по значению, что означает создание точной копии и передачу копии, оригинал остается нетронутым.
Переданное здесь значение можно рассматривать как адрес памяти (что не совсем так с виртуальными машинами, но это полезная и адекватная метафора).
В методе теста вы устанавливаете переменную, содержащую копию этого адреса, в null
. Это не имеет никаких дальнейших последствий.
Случай сильно отличается, если вы используете адрес, сохраненный в переменной, для доступа и изменения фактического объекта, к которому относится адрес. Здесь вы меняете реальную вещь, поэтому все изменения остаются после того, как ваша локальная переменная выходит из области видимости.
Чтобы сделать еще один шаг назад:
Вы можете видеть переменную как листок бумаги с адресом друга (вашего объекта).
Если вы сжигаете бумагу (устанавливая переменную в ноль), ваш друг не будет затронут.
Если вы используете бумагу для посещения адреса и дарите своему другу подарок или шлепаете его по лицу (вызывая метод для объекта, находящегося за переменной), это определенно влияет на вас, и вы должны жить с последствиями