從問題到語言遊戲

今天有個同學問我,爲什麼下面的代碼會出錯
  if( Request.Cookies["Users"]["Email"] == null )
  {
     //code
  }
  錯誤提示是:未將對象引用到實例
  這段代碼肯定會出錯,我相信有經驗的朋友一看就知道怎麼回事了
  如果Request.Cookies["Users"]==null的話,還能有Email這個子屬性嗎?
  改成這樣就不會出錯了:
  if( Request.Cookies["Users"] != null && Request.Cookies["Users"]["Email"] != null)
  {}
  else
  {
     //code
  }
  感覺上面的代碼有一個{}區域多餘了,所以:
  if ( Request.Cookies["Users"] != null )
  {
      if (Request.Cookies["Users"]["Email"] == null)
      {
         //code
      }
  }
  但是這樣又多了一個嵌套 ,於是:
  if( !(Request.Cookies["Users"] != null && Request.Cookies["Users"]["Email"] != null) )
  {
      //code
  }
  這樣邏輯好像又不好了......
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章