求長度的另一種方法(“”+obj).Length

來源:互聯網
上載者:User

    ASP.Net頁面綁定時,標題超過20則省略,常規做法:

Eval("Title")==null?"":(Eval("Title").ToString().Length<=20?Eval("Title").ToString():Eval("Title").ToString().Substring(0,17)+"…")

 

    我先說結果,看看我們在ASP時代常用的手段:

(""+Eval("Title")).Length<=20?(""+Eval("Title")):(""+Eval("Title")).Substring(0,17)+"…"

 

    嗯,我的表達有些糟糕,其實我是想說明一種方法,避免判斷null,又能避免ToString的,那就是""+obj

 

    然後就有同學不同意,覺得這個用法很不好,並且obj不是String時有null異常,並且效能也不好……

 

    我們來一個測試

這個說明,obj不是String時,並沒有null異常。

 

    我們看看後面那個的IL

實際上,編譯器處理過了,類似:String.Concat(obj),注意了,這裡是一個Object參數的靜態方法,不是我們常用的兩個參數那個

 

    再看看這個神秘的String.Concat(Object)

哦,轉了一圈,還是回來了!

 

結果表明,""+obj跟obj==null?"":obj.ToString()是完全一樣的!

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.