自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Linq查詢本質(zhì)簡單分析

開發(fā) 后端
這里介紹Linq查詢本質(zhì),本文的目的是幫助大家搞清楚C#3.0里面的Linq查詢表達式的來龍去脈,搞清楚以后對C#3.0的新特性基本上也就了然于胸了。

在向大家詳細介紹XX之前,首先讓大家了解下Linq查詢本質(zhì),包括介紹自動屬性、初始化器和具有隱式類型的局部變量。

本文的目的是幫助大家搞清楚C#3.0里面的Linq查詢表達式的來龍去脈,搞清楚以后對C#3.0的新特性基本上也就了然于胸了。建議大家看完Linq查詢后再看各個語法新特性對Linq的意義,這樣會更加有幫助一些。

1.自動屬性

  1. class Class  
  2. {  
  3. //C#2.0 屬性  
  4. //private int _id;  
  5. //public int ID  
  6. //{  
  7. //get {  
  8. //return _id;  
  9. //}  
  10.  
  11. //set  
  12. //{  
  13. //_id = value;  
  14. //}  
  15. //}  
  16.  
  17. //C#3.0 屬性 可以給get set加訪問修飾符  
  18. public int ID { get; private set; }  
  19. public string Name { get; set; }  
  20. public Class(int id)  
  21. {  
  22. //加了private之后的屬性只能在類的內(nèi)部訪問  
  23. this.ID = id;  
  24. }  

Linq查詢本質(zhì):和原來的屬性沒啥兩樣 ,簡化了語法而已。

2.初始化器

  1. private static void Initializer()  
  2. {  
  3. //C#2.0 對象初始化  
  4. //Class c = new Class(1);  
  5. //c.Name = "***一班";  
  6. //C#3.0 對象初始化器  
  7. Class c = new Class(1) { Name = "***一班" };  
  8. //C#2.0 集合初始化  
  9. //ClassCollection list = new ClassCollection();  
  10. //list.Add(c);  
  11. //C#3.0 集合初始化器  
  12. ClassCollection list = new ClassCollection  
  13. {  
  14. new Class(1) { Name="***一班"},  
  15. new Class(2){Name="***二班"}  
  16. };  
  17. foreach (Class item in list)  
  18. {  
  19. Console.WriteLine(item.ID + " " + item.Name);  
  20.  
  21. }  

Linq查詢本質(zhì):和原來的構(gòu)造函數(shù)初始化或構(gòu)造后通過屬性初始化沒啥兩樣 ,簡化了語法而已。

3.具有隱式類型的局部變量

  1. private static void Var()  
  2. {  
  3. var i = 1;  
  4. // 編譯過后的結(jié)果實際是 int i=1
  5. var并不是動態(tài)變量,它的類型實際上是c#編譯器通過上下文推斷是int  
  6. //var i = DateTime.Now;   
  7. //編譯不過,和JavaScript不一樣  
  8. var d = DateTime.Now;  
  9. //=后面支持各種類型  
  10. var a = new int[] { 1, 2, 3 };  
  11. //var也支持數(shù)組  
  12. foreach (var item in a)  
  13. //item的類型通過C#編譯器推斷得知是int  
  14. {  
  15. Console.WriteLine(i);  
  16. }  
  17.  
  18. //var x;   
  19. // 錯誤,沒有用來推斷類型的初始化器  
  20. //var y = { 1, 2, 3 };  
  21. // 錯誤,不允許使用集合初始化器  
  22. //var z = null;  
  23. // 錯誤,不允許出現(xiàn)空類型  
  24. }  

Linq查詢本質(zhì):var并非動態(tài)類型 ,C#仍然是靜態(tài)語言,引入var方便我們寫代碼了,可以不管“=”后面的賦值表達式類型了,由編譯器自己去推斷生成對應(yīng)類型了。

【編輯推薦】

  1. LINQ to SQL查詢分析
  2. LINQ查詢架構(gòu)簡單介紹
  3. LINQ to SQL映射關(guān)系概述
  4. LINQ To SQL對象模型淺析
  5. LINQ to SQL映射列描述
責任編輯:佚名 來源: IT168
相關(guān)推薦

2009-09-15 15:09:50

Linq本質(zhì)

2009-09-10 16:28:17

LINQ查詢

2009-09-08 13:16:01

Linq to SQL

2009-09-08 09:24:50

LINQ查詢

2009-09-14 10:20:52

LINQ查詢語法

2009-09-07 17:05:10

LINQ進行查詢

2009-09-09 15:10:35

LINQ查詢句法

2009-09-15 09:39:38

LINQ查詢架構(gòu)

2009-09-15 15:18:40

Linq連接查詢

2009-09-15 16:09:12

LINQ進行查詢

2009-09-15 10:46:04

LINQ to SQL

2009-09-14 10:09:26

LINQ查詢結(jié)果

2009-09-17 11:29:50

Linq擴展方法

2009-09-10 17:53:50

LINQ是什么

2009-09-08 17:01:54

Linq源元素

2009-09-15 11:34:47

Linq多條件查詢

2009-09-16 10:48:32

LINQ查詢操作

2009-09-14 18:53:27

LINQ查詢

2009-09-16 15:41:45

LINQ查詢XML文檔

2009-09-18 16:46:15

LINQ查詢句法
點贊
收藏

51CTO技術(shù)棧公眾號