首先需要聲明的是“語法糖”這個詞絕非貶義詞,它可以給我帶來方便,是一種便捷的寫法,編譯器會幫我們做轉換;而且可以提高開發編碼的效率,在性能上也不會帶來損失。這讓java開發人員羨慕不已,呵呵。
1. 經過簡化的PRoperty
早些時候我們這樣聲明Property
?| 1234567891011 | privatestring_myName;publicstringMyName{get{return_myName; }set{ _myName = value; }} |
千篇一律的這樣聲明,沒有多大意義,于是C#的設計人員將這個千篇一律的工作交給了編譯器幫我們做了,我們現在可以這樣聲明
?| 1 | publicstringMyName {get;set; } |
當然他不會犧牲靈活性,我們可以單獨給get或者set設定訪問限制符,例如
?| 1 | publicstringMyName {get;protectedinternalset; } |
2. 經過兩次變異的委托寫法
在.net 1.1時我們不得不聲明方法后才在委托中使用,在.net 2.0之后我們可以使用匿名委托,他不單可以簡化寫法,還可以在匿名委托中訪問范圍內的變量;再后來拉姆達表達式來了,寫法就更簡便了。
?| 1234567891011121314151617181920212223242526272829 | classMyClass{publicdelegatevoidDoSomething(inta);//定義方法委托privatevoidDoIt(inta) {Console.WriteLine(a);}privatevoidHowtoDo(DoSomething doMethod,inta) {doMethod(a);}publicstaticvoidMain(string[] args) {MyClass mc =newMyClass();//調用定義的方法委托mc.HowtoDo(newDoSomething(mc.DoIt), 10);intx = 10;//使用匿名委托mc.HowtoDo(delegate(inta){Console.WriteLine(a + x);},10);//使用lamda表達式mc.HowtoDo(a=>Console.WriteLine(a+x),10);Console.ReadLine();}} |
3. 集合類的聲明
之前我們聲明一個List并給list賦初始值,必須得這么寫:
?| 1234 | List<string> list =newList<string>();list.Add("a一");list.Add("b二");list.Add("c三"); |
現在不需要了,直接寫就可以了
?| 123 | List<string> list =newList<string> {"def","OK"}; |
4. 集合類各個項的操作
我們為了逐個處理集合中的項,需要這么寫:
?| 1234 | foreach(stringiteminlist){Console.WriteLine(item);} |
現在不需要了,這樣就可以了
?| 1 | list.ForEach(a => Console.WriteLine(a)); |
代碼是不是清爽了很多。
5. using == try finally
為了在使用完畢時釋放資源,我們經常要用using,using實質上就是try fiannaly的一個語法糖而已。例如
?| 123456789 | StreamWriter sw =null;try{sw =學習交流
熱門圖片
猜你喜歡的新聞
新聞熱點 2019-10-23 09:17:05
2019-10-21 09:20:02
2019-10-21 09:00:12
2019-09-26 08:57:12
2019-09-25 08:46:36
2019-09-25 08:15:43
疑難解答 |