在C#與Asp.net中以往在要取得 Request["xx"] 或是 Session["xx"] 或是其它有可能為 null 的變數

的值時, 例如:

 

string str_Keyword = Request["Keyword"].ToString() ;

 

string str_UserPK = Session["UserPK"].ToString();

 

如果不加以先判斷是否為null,一旦傳來的參數並沒有這個Query String,代表這個變數其值為null,假使

 

如上方一樣直接指定到已經確定的型別,就會產生錯誤,擲回 InvalidOperationException 的例外狀況,

 

為避免這種狀況造成錯誤,於是在以前就用以下的乖乖牌方法

 

  1. 預先給定好準備接受傳來值的變數之預設值。

  2. 判斷是不是null。

  3. 傳遞數值。

如下:

 

string str_Keyword = "N/A";

 

if (Request["Keyword"] != null)

 

  {

 

    str_Keyword = Request["Keyword"].ToString();

  }

    .........

 

以上方式的確是可以得到想要的結果,然而,這樣的寫作方法,先別論這得多敲了幾下鍵盤而讓手

 

指多了n次的敲擊反作用回饋(ps.就像揮拳揍人自己手也會痛。),單就視覺欣賞角度來看,半點瀟灑

的氣息都沒有,其實用點小技巧來點綴,那就可以Bling Bling了... 如下:

 

 

string str_Keyword = (Request["Keyword"] != null?  Request["Keyword"].ToString()  :   "N/A" ;

 

 

現在就變帥氣多了,這段程式碼可以用以下白話文解釋:

str_Keyword 字串先生喊話 : ㄟ!! 你那個 Request["Keyword"]  現在是怎樣,是null還是不是?

回給我個訊息吧! XD

 

除了以上之外,C#也提供了一個更方便的去判斷變數是否為null然後傳值的做法就是---- ??

string str_1 = str_2 ??"N/A"

 

這段程式碼一樣可以用以下白話文解釋:

str_1 字串先生看著對面心想 "ㄟ!!  str_2 你 是怎回事ㄚ?不是null就快過來吧,不過要是你是null的話,那我

就要找後面那一個了喔!!" XD!

 

arrow
arrow
    文章標籤
    C# ASP.NET
    全站熱搜

    baechang 發表在 痞客邦 留言(0) 人氣()