Session["userName"]與Session["userName"].ToString()是不一樣的~~


今天調了個代碼,發現老是跟預期的結果不一樣,找了半天的原因,一個一個的往回找,終於逮出元凶了!

我今天才發現,下面兩個是不一樣的:

//有問題的代碼
if (Session["uid"] == oFormHR.AuthorizeId && formState != "流程校正中")
{
      //..
}



//正確的代碼
if (Session["uid"].ToString() == oFormHR.AuthorizeId && formState != "流程校正中")
{
      //..
}


第一個,現在重新審視了一下,就算Session["uid"]里面存放的是一個String對象,而且值也是相同的,盡管編譯是通過了,但是它們可能永遠都會返回false!!

為啥?因為Session["uid"]是一個Session對象,而后面那貨是個String對象,所以,還是用回我以前舉的一個例子來說吧,下面是原文地址:http://zhidao.baidu.com/link?url=U3nb69YTa6uzph8Iv_YrWtBJfF474A3kG2oU36Y3bYi4PHXXjxnSWnkDeMbCinIdiB7hAm41ewBM8LBa3eoTUa

 

打個比方吧,比如我有一個類:人
然后我new了兩個實例,注意看下面“代碼”:

人 張三 = new 人();
張三.眼睛 = 2個;
人 李四 = new 人();
李四.眼睛 = 2個;

bool op3 = 張三==李四;

說明:就算張三跟李四一樣有兩個眼睛,但他們不是同一個人,所以“張三==李四”會返回false.

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM