0

FindControl()工作快不快?

如果我多次搜索和使用相同的控件,我是否需要使用这样的属性来缓存结果?

private MyUserControl c;
private MyUserControl MyC
{
    get
    {
        if(c == null)
            c = (MyUserControl)FindControl("c");
        return c;
    }
}
4

2 回答 2

3

如果您正在谈论请求,那么不要。事实上你不能。控制引用仅在页面渲染时暂时存在将它们放在会话或其他一些持久缓存中让它们持久化并搞砸垃圾收集器

于 2009-11-17T11:12:16.030 回答
2

每个带有“快吗”的问题都应该回答:试试看。

FindControl(我认为)通过所有控件循环,因此速度取决于控件的数量。我想你不应该担心。

于 2009-11-17T10:20:34.840 回答