最近,一位在和一位同學交流的時候,他讓我看看他的代碼情況,我看了許久,逐步記錄了一些,現在慢慢總結出來,與大家分享,編寫有效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);
我們常常忽視了好多,我們並沒有追求什麼完美,但是代碼要是讓我們產生厭惡感,你還那樣寫代碼嗎?後面我也將陸陸續續更新更多...