這篇文章主要介紹“Linq本質是什么”,在日常操作中,相信很多人在Linq本質是什么問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Linq本質是什么”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
創新互聯自2013年創立以來,先為白堿灘等服務建站,白堿灘等地企業,進行企業商務咨詢服務。為白堿灘企業網站制作PC+手機+微官網三網同步一站式服務解決您的所有建站問題。
1.匿名類型
private static void AnonymousType() { var v = new { Name = "張三", Sex = true }; //無須顯示聲明一個類,而且在初始化器里面可以獲取上下文的變量——閉包 Console.WriteLine(v.Name); }
Linq本質:有了匿名類型后我們不需要顯示的聲明一個類型了,這個類型由C#編譯器自動生成,而且利用了初始化器和var的新特性對Linq的意義:和初始化器結合起來構造查詢結果集合里面的新元素類型。
2.擴展方法
比如我們現在想給int類型增加(擴展)一個方法,判斷一個整數自身是否偶數,我們期望的語法是這樣的:
private static void ExtendMethod() { int i = 2; Console.WriteLine(i.IsEven()); }
注意原來int原來是沒有IsEven()這個方法的,要實現這個方法,必須寫一個靜態類和一個靜態方法:
static class MyExtention { public static bool IsEven(this int num) //this 表示針對int的實例和索引器的this的含義是一樣的,int表示給int這種類型進行擴展 { return num % 2 == 0; } }
Linq本質:編譯i.IsEven()的本質是C#編譯器生成了了MyExtention.IsEven(i)的代碼,實際上仍然沒有破壞類型的結構,并不是真的象語法那樣平白無故給int增加了一個IsEven()方法,和設計模式里面的Visitor模式動態注入方法還是有區別的。
到此,關于“Linq本質是什么”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注創新互聯網站,小編會繼續努力為大家帶來更多實用的文章!
當前名稱:Linq本質是什么
分享鏈接:http://m.newbst.com/article20/gcicjo.html
成都網站建設公司_創新互聯,為您提供網站營銷、定制開發、搜索引擎優化、網站改版、自適應網站、網站制作
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯