在一个作用域中多次访问会话/ViewState

本文关键字:访问 会话 ViewState 作用域 一个 | 更新日期: 2023-09-27 18:21:45

当使用Session属性时,set/get将被写为以下内容之一:

    public int MySessionPro
    {
        get
        {
            return Session["MySessionKey"] == null ? 0 : Convert.ToInt32(Session["MySessionKey"]);
        }
        set
        {
            Session["MySessionKey"] = value;
        }
    }

或者如下:

        public int MySessionPro
        {
            get
            {
                object mySessionPro = Session["MySessionKey"];
                return mySessionPro == null ? 0 : Convert.ToInt32(mySessionPro);
            }
            set
            {
                Session["MySessionKey"] = value;
            }
        }

什么是更高效/更好的性能?第二种方法的第一种

通过将上面代码中的每个"Session"替换为"ViewState",同样的问题也适用。同样,这两种方法在效率方面是否不同?

在一个作用域中多次访问会话/ViewState

无论是使用ViewState还是Session,答案都是一样的:除非ViewStateSession对象中有很多变量,否则性能差异将非常小。

在第一种方法中,查询变量的次数是第二种方法的1倍。

在第二个例子中,您只需要再设置一个变量。

由于查询变量需要更多的操作,而不仅仅是设置一个额外的变量,因此第二种方法应该比第一种方法更高效/更好。