[轉錄]7 Ways To Optimize C# Code

  • 6241
  • 0

[轉錄]7 Ways To Optimize C# Code

前言

剛好看到Jeff大大這篇比較效率的文章,順手去挖了一篇沉很久的轉錄文章出來,希望對大家都有幫助。

Jeff大的文章:不分英文字母大小寫的字串比較方式


 

原文參考:7 Ways To Optimize C# Code

 

內容都是平時寫code會發生的情況,
當每次遇到時,改寫成文中建議的方式,對整個系統每個角落的CODE都進行這樣的改寫,將提升很可觀的performance。

 

內容節錄跟白話解釋:

  1. Knowing when to use StringBuilder
    • 組不變的固定字串時,建議用"@",或string,而不是用StringBuilder。
    • 組動態字串時,如SQL statement、javascript、html時,則建議使用StringBuilder。
  2. Comparing Non-Case-Sensitive Strings
    • 比較字串時,往往使用string.ToUpper()或ToLower(),但這大量使用時,會成為系統的效率瓶頸。
    • 建議改使用string.Compare(str1, str2, true) == 0
  3. Use string.Empty
    • 空字串時,往往習慣使用"",但string.Empty的寫法,效率更高,可讀性也比較高
  4. Replace ArrayList with List<>
    • 使用泛型List<>,效率比ArrayList 好!
  5. Use && and || operators
    • 使用&&來取代and,使用||來取代or。(在VB為AndAlso與OrElse),效率會比較好
  6. Smart Try-Catch
    • 謹慎界定Try-Catch使用時機與範圍
  7. Replace Divisions
    • 除法在C#的運算效率較差,若系統需要大量使用到除法,可考慮用位元shift的方式來改寫除法。

 

其他參考:

  1. Optimizing integer divisions with Multiply Shift in C#
  2. C# Coding Standards document
  3. C# Coding Standards document(翻譯成中文)

 

PS:

為啥我一直有印象這一篇是從哪一個前輩的blog上看到後,我幫忙節錄的…

(如果有違反到著作權,再麻煩跟我說一聲,我會補上您的原文連結或是把文章刪除,
因為這篇文章我當時只有記錄一部份內容...不過剛剛又搜尋不到任何相關記錄...)

[註]:看到最後一個連結,是從Bibby大那邊看到的?我只記得有在噗上討論過了.....


blog 與課程更新內容,請前往新站位置:http://tdd.best/