第一种方式:
public static void createusersession(UserSession userinfo)
{ System.Web.HttpContext.Current.Session["loginname"] = userinfo; }
第二 种方式:
public static void createusersession(UserSession userinfo)
{ Session["loginname"] = userinfo; }
以上两种方式有什么区别呢,好像高人喜欢用第一种方式
第一种方式:
System.Web.HttpContext.Current.Session == null 时,直接返回null。
第二种方式:
Session == null 时,会抛出异常。
通过ILSpy查看System.Web.UI.Page的代码可以看出:
// System.Web.UI.Page public virtual HttpSessionState Session { get { if (!this._sessionRetrieved) { this._sessionRetrieved = true; try { this._session = this.Context.Session; } catch { } } if (this._session == null) { throw new HttpException(SR.GetString("Session_not_enabled")); } return this._session; } }
stackoverflow上有人对这个问题作出了精彩解答:
差不多
Session 是調用頁面的方式,這個方法也是調用下面的方法。
System.Web.HttpContext.Current.Session["loginname"] = userinfo; 是調用一個靜態的方法。
没有什么区别,在你编写session的时候其实就是System.Web.HttpContext.Current.Session,这是他的完整写法。
同意楼上.
学习了。。。
学习了