Linq查询本质简单分析

在向大家详细介绍XX之前,首先让大家了解下Linq查询本质,包括介绍自动属性、初始化器和具有隐式类型的局部变量。

成都创新互联是专业的兴业网站建设公司,兴业接单;提供成都网站设计、做网站、成都外贸网站建设公司,网页设计,网站设计,建网站,PHP网站建设等专业做网站服务;采用PHP框架,可快速的进行兴业网站开发网页制作和功能扩展;专业做搜索引擎喜爱的网站,专业的做网站团队,希望更多企业前来合作!

本文的目的是帮助大家搞清楚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之后的属性只能在类的内部访问  
  23. this.ID = id;  
  24. }  

Linq查询本质:和原来的属性没啥两样 ,简化了语法而已。

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查询本质:和原来的构造函数初始化或构造后通过属性初始化没啥两样 ,简化了语法而已。

3.具有隐式类型的局部变量

 
 
 
  1. private static void Var()  
  2. {  
  3. var i = 1;  
  4. // 编译过后的结果实际是 int i=1; 
  5. var并不是动态变量,它的类型实际上是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也支持数组  
  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. // 错误,不允许出现空类型  
  24. }  

Linq查询本质:var并非动态类型 ,C#仍然是静态语言,引入var方便我们写代码了,可以不管“=”后面的赋值表达式类型了,由编译器自己去推断生成对应类型了。

【编辑推荐】

  1. LINQ to SQL查询分析
  2. LINQ查询架构简单介绍
  3. LINQ to SQL映射关系概述
  4. LINQ To SQL对象模型浅析
  5. LINQ to SQL映射列描述

新闻名称:Linq查询本质简单分析
文章转载:http://www.mswzjz.com/qtweb/news8/195908.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联