星期日, 12月 26, 2010

[.NET]程式語法效能筆記

剛剛閒逛到91哥的部落格上又再次的看到這篇文章,
[轉錄]7 Ways To Optimize C# Code
重新再看,已經可以做點小反省跟筆記了,
於是乎來偷截一下文章順便做做筆記。




內容節錄跟白話解釋:
  1. Knowing when to use StringBuilder
    • 組不變的固定字串時,建議用"@",或string,而不是用StringBuilder。
    • 組動態字串時,如SQL statement、javascript、html時,則建議使用StringBuilder。
       少用,我的SQL statement大部分都是大喇喇的直寫,之前的短命同事有寫過一份範例CODE給我,找個時間再來研究吧! 這完全是該反省的項目Orz 
  2. Comparing Non-Case-Sensitive Strings
    • 比較字串時,往往使用string.ToUpper()或ToLower(),但這大量使用時,會成為系統的效率瓶頸。
    • 建議改使用string.Compare(str1, str2, true) == 0
      少用,目前的網站幾乎很少有字串比較的狀況 ,下次有遇到再來翻這文章吧XD
  3. Use string.Empty
    • 空字串時,往往習慣使用"",但string.Empty的寫法,效率更高,可讀性也比較高
      常用,已是習慣!!不過,這完全不是因為效率的關係XD 而是之前在命名string變數時常常會出現紅色小毛蟲,查了很久才發現命名完後應該幫它塞點東西這樣XDXD 所以現在命名完都會幫他這樣塞。不過也僅限命名完的樣子-.-
  4. Replace ArrayList with List<>
    • 使用泛型List<>,效率比ArrayList 好!
      偶爾用,之前完全不知道list 這東西到底該怎麼使用,牙董...也只有給提示說要用這個做比較好做,幸好有熊姐拯救了在海上載浮載沉的我Q_Q 現在也會用啦~ 搭上linq很不錯用的FU
  5. Use && and || operators
    • 使用&&來取代and,使用||來取代or。(在VB為AndAlso與OrElse),效率會比較好
      沒用XD 我想還是跟習慣有關,使用andalso跟orelse上次有看到討論的文章,心裡其實有下定決心要來改正一下,不過,後來有次遇上可以用orelse的時機,卻怎麼也想不起來到底那個or後面是接了甚麼文字 Orz
      參考網頁:
      .NET的AndAlso與OrElse from亞特蘭提斯 .Net Atlantis 
    • 善用 AndAlso 及 OrElse 運算子 from ASP.NET 魔法學院
  6. Smart Try-Catch
    • 謹慎界定Try-Catch使用時機與範圍
      我可以說完全沒習慣嗎XDXD 
  7. Replace Divisions

沒有留言: