RELATEED CONSULTING
相关咨询
选择下列产品马上在线沟通
服务时间:8:30-17:00
你可能遇到了下面的问题
关闭右侧工具栏

新闻中心

这里有您想知道的互联网营销解决方案
Linq本质是什么

这篇文章主要介绍“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://sczitong.cn/article/gcicjo.html