У .NET есть сборщик мусора, который заботится о его очистке кода. Вот почему вам не нужны (вообще) деструкторы.
В этом случае важно, чтобы что-то «уходило», когда ничего не ссылается на него.
Что также имеет значение, что представляет собой myHyperLink. myHyperLink - это не сам объект, это указатель . Существуют определенные базовые типы, такие как int, где это не так, но когда вы имеете дело со сложными объектами, это то, что происходит. Таким образом, в этом случае у вас есть указатель myHyperLink и объект, на который указывает myHyperLink. Это различие очень важно.
В вашем коде есть гиперссылка и указатель myHyperLink. На сам объект гиперссылки ссылаются обе страницы.Элементы управления и - ваша локальная ссылка на myHyperLink.
Когда вы сказали
myHyperLink = newHyperLink;
Что вы делали, так это изменение, на которое указывал указатель myHyperLink. Исходная гиперссылка все еще существовала в Page.Form.Controls. Это означает, что оригинальная гиперссылка не исчезает - на нее все еще ссылаются.
Далее, почему оригинальная модель все еще отображается, а не новая? Ну, когда страница делает это, в основном заботится о том, что существует в Page.Form.Controls. Поскольку исходная ссылка все еще находится в файле page.form.controls, это то, что получается. В то время как новая гиперссылка существует, новая гиперссылка никогда не добавлялась в Page.Form.Controls. Это было просто опровергнуто вашим указателем и манипулировало. Если вы не добавите его в Page.Form.Controls (или переопределите рендеринг вручную/какую-то другую странную вещь), он не будет отображаться.
верно я мог бы сделать это таким образом, но я больше заинтересован в том, почему он не работает таким образом. Кажется, что оба метода должны работать? – ChrisHDog
Он работает, но круговым способом, как упоминалось выше. Я никогда не устанавливал контроль прямо как в вашем вопросе - поскольку элемент управления уже создан, он не очень эффективен. –
не может добавить новую гиперссылку в нижней части страницы? (в вашем примере есть только одна гиперссылка, но потенциально гиперссылка может быть окружена другими элементами) – ChrisHDog