处理HtmlControl

Man*_*rok 7 resharper webforms idisposable visual-studio-2010

根据VS中Code Code的建议来调用一个对象上的Dispose(我之前并不是这样)我最终得到了一个包含这个的方法:

using (var favicon = new HtmlLink
                         {
                             Href = "~/templates/default/images/cc_favicon.ico"
                         })
{
    favicon.Attributes.Add("rel", "shortcut icon");
    Header.Controls.Add(favicon);
}
Run Code Online (Sandbox Code Playgroud)

这让我有点困惑,如果我将这个对象添加到Controls集合之后处理这个对象是个好主意吗?

这怎么样仍然有效?是因为Controls.Add方法在使用后处理对象而不是坚持它?

Ign*_*cia 2

我想说这段代码不应该工作,但如果你说它工作,那么我唯一能想到的是:

  • Header.Controls.Add 添加对象的副本,因此处理原始对象没有问题。
  • Dispose 方法不会清除以后使用的任何内容。

希望这可以帮助。

  • 是后者 Add 不复制对象 (3认同)