.NET面试题——第9篇 Linq

1. 委托声明的关键字是什么?

delegate

2. 请解释.NET采用委托实现的事件模型与JAVA中采用接口实现的事件模型有什么区别,

.net中的委托概念java中没有相同的,只有事件模式是一样的,java中有一个叫Obserable接口,可以添加IEventListener,使用内部类可以构建类似于委托的概念

3. C#中的委托是什么?事件是不是一种委托?

C#中的委托是一种引用类型,表示具有相同方法签名的方法的引用。类似于函数指针,也就是说它们是指向函数的“引用”,更加安全。

事件不是委托,是委托类型的变量。

4. 委托回调静态方法和实例方法有何区别?

当一个实例方法被调用时,需要通过实例对象来访问,绑定一个实例方法到委托必须同时让委托得到实例方法的代码段和实例对象的信息,这样在委托被回调时候.NET才能成功地执行该实例方法。委托内部的对象成员变量target是一个指向目标实例的引用。当委托绑定静态方法时,内部的对象成员变量target将会被设置成null,而当委托绑定实例方法时,_target将会设置成指向该实例方法所属类型的一个实例对象,当委托被执行时,该对象实例将被用来调用实例方法。

5. 什么是链式委托?

链式委托是指一个由委托串成的链表,当链表上的一个委托被回调时,所有链表上该委托的后续委托将会被顺序执行。在委托中存在内部的对象成员变量_prev,该指针指向委托链中的下一个委托。

6. 委托是否可以有返回值?

委托可以是带有返回值的方法,但多于一个带返回值的方法被添加到委托链中时,程序员需要手动的调用委托链上的每一个方法,否则委托使用者将只能得到委托链上最后一个被执行方法的返回值。

7. 如何理解委托

委托是一种特殊的引用类型,允许将方法作为参数进行传递。

委托在使用过程中的一般步骤:类型定义、对象创建和方法绑定,方法调用。

委托是一种引用方法类型,一旦委托分配了方法,委托将与该方法具有完全相同的行为。委托方法的使用可以像其他任何方法一样,具有参数和返回值。委托可以看作是对函数的抽象,是函数的‘类’,委托的实例将代表一个具体的函数。

8. Linq查询,lambda表达式

LINQ(Language Integrated Query,语言集成查询)提供了一种跨数据源和数据格式的统一模型,实现查询。主要包括三个部分:LINQ to Objects、LINQ to XML、LINQ enabled ADO.NET,而在LINQ enabled ADO.NET中又包括LINQ to DataSet、LINQ to SQL 和 LINQ to Entities。

“**Lambda** 表达式”是一种简化的匿名函数,在C#3.0中引入的,可用于创建委托或表达式目录树。也可以将 Lambda 表达式作为参数或者返回值使用。它的语法形式是: 输入参数 => 表达式或语句块,其中,=> 读作“goes to”,在LINQ查询中大量的使用到。

9. Linq查询的优势。

无需复杂学习过程即可上手。  

编写更少代码即可创建完整应用。  

更快开发错误更少的应用程序。  

无需求助奇怪的编程技巧就可合并数据源。

让新开发者开发效率更高。  

任何对象或数据源都可以定制实现Linq适配器,为数据交互带来真正方便。

10. Linq中concat union intersect的区别

Concat :连接两个序列。

Union : 通过使用默认的相等比较器生成两个序列的并集。

Intersect : 通过使用默认的相等比较器对值进行比较生成两个序列的交集。

11. Linq与SQL语句的执行速度哪个更快?

SQL语句的执行速度更快

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
.NET面试题及答案详解主要涉及以下几个方面:基础知识、框架、语言特性、数据库操作、多线程等。 首先,针对基础知识的问题,可能会问到.NET是什么、.NET框架的组成部分、CLR是什么、以及C#和VB.NET的区别等。面试者可以回答.NET是一个面向对象的软件开发框架,包括CLR、FCL、ASP.NET等组成部分,CLR是公共语言运行库,C#和VB.NET都是.NET平台上的开发语言,其中C#更加常用。 其次,针对框架的问题,面试官可能会询问ASP.NET MVC和ASP.NET Web Forms的区别、Entity Framework的作用和优势、以及WCF和Web API的应用场景等。面试者应该了解ASP.NET MVC是一种基于模型-视图-控制器的开发模式,而Web Forms是一种传统的页面式开发模式;Entity Framework是.NET下的对象关系映射框架,简化了数据库操作;WCF用于构建分布式应用程序,而Web API主要用于构建RESTful服务。 此外,还可能会涉及到语言特性,例如面向对象的特性、委托和事件的使用、LINQ的特点等。面试者应该对这些概念有清晰的理解,并能够举出实际应用的例子。 另外,针对数据库操作和多线程方面的问题,面试官可能会考察ADO.NET的使用、并发编程、以及异步编程等。面试者需要熟悉ADO.NET的各种操作方式,以及多线程和异步编程的相关知识。 总之,针对.NET面试题及答案的详解需要面试者全面了解.NET相关的知识点,并能够结合实际应用进行深入阐述,展现出自己的专业能力和经验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不想只会CRUD的猿某人

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值