編寫有效C# 代碼(一)

來源:互聯網
上載者:User

       最近,一位在和一位同學交流的時候,他讓我看看他的代碼情況,我看了許久,逐步記錄了一些,現在慢慢總結出來,與大家分享,編寫有效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); 

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

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.