在范围内多次访问会话/ ViewState

时间:2013-07-09 15:33:56

标签: c# asp.net

使用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;
            }
        }

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

同样的问题适用于在上面的代码中用“ViewState”替换每个“Session”。同样,这两种方法在效率方面是否不同?

1 个答案:

答案 0 :(得分:2)

使用ViewStateSession答案是相同的:性能差异非常小,除非您的ViewState或{{{{}}}中有很多变量1}}对象。

在第一种方法中,您将比第二种方法查询变量的1倍。

在第二个中,您只需设置一个变量。

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