編寫有效的C# 代碼(一)


       最近,一位在和一位同學交流的時候,他讓我看看他的代碼情況,我看了許久,逐步記錄了一些,現在慢慢總結出來,與大家分享,編寫有效的C#代碼很重要,雖然我們平時寫的時候只管實現,但是在面向大型的項目或者參與國際開源項目的時候,經常會遇到有效的C#問題。今天列舉幾個,供大家參考。

       第一:ToString() 很好,但是就這樣?

       我們常常喜歡用ToString()進行格式化轉換,將對象表達為字符串形式,但是如何應用有效呢?舉個例子:獲取當前時間:System.DateTime.Now.ToString() 這是我們太習慣不過的代碼了,但是里面至少有兩處問題。1)"System." 是冗余代碼,因為一般命名空間中都添加了Using System; 2) ToString() 缺少獲取不依賴於區域性(固定)的CultueInfo。你覺得呢?親...

       第二:三目運算符?更簡潔?

       以前我們習慣用If..else..來做判斷,后來用三目運算符來簡化if...else...甚至替代,但是有比三目運算符更簡潔的嗎?當然有的情況下還是有的,舉個例子:

      if(a>b)
         { return  true ;}
       else
         { return function();} // function() 是一個執行返回參數為bool類型的值

       用三目運算符表達:return  (a>b?true:function)

       更簡單的方法:return b>=a  &&  function()

       你覺得是這樣嗎?親...(當然從執行效率上三目是最高的)

       利用VS2010的度量分析:采用if..else..時候:

                               

       采用三目和上面的表達式時:

                              

       第三:為什么不用Linq?還在foreach 嗎? 

       我們都知道foreach 是在for循環上的一種有效改進,但是Linq的出現,難道我們不能再改進嗎?舉個例子:

    string result=  "";
     foreach ( string s  in strList)
     {
        result+= s;
     } 
 

       上述代碼很簡單,但是我們是否可以這樣?

    string pat = strList .Aggregate( "", (current, s) => current + s); 

        我們常常忽視了好多,我們並沒有追求什么完美,但是代碼要是讓我們產生厭惡感,你還那樣寫代碼嗎?后面我也將陸陸續續更新更多...


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM