Net面试题

一、C#委托Func、Action的区别

Func与Action作用几乎一样。只是

  • Func<Result>有返回类型;
  • Action<T>只有参数类型,不能传返回类型

例如Func<int>返回结果int;Action<int>参数int,无返回值

  Func<int,string>返回结果string,参数int;Action<int,string>两个参数:int,string

二、c#协变,逆变

直白的理解: 

“协变”->”和谐的变”->”很自然的变化”->string->object :协变。 

“逆变”->”逆常的变”->”不正常的变化”->object->string 逆变。 

三、MVC路由的理解

1、首先我们要理解MVC中路由的作用:url Routing的作用是将浏览器的URL请求映射到特定的MVC控制器动作。

2、当我们访问http://localhost:8080/Home/Index 这个地址的时候,请求首先被UrlRoutingModule截获,截获请求后,从Routes中得到与当前请求URL相符合的RouteData对象, 将RouteData对象和当前URL封装成一个RequestContext对象,然后从Requestcontext封装的RouteData中得到 Controller名字,根据Controller的名字,通过反射创建控制器对象,这个时候控制器才真正被激活,最后去执行控制器里面对应的 action。

四、什么是索引,索引的分类及区别

索引:

索引分为聚集索引和非聚集索引,区别如下:

1、聚集索引一个表只能有一个,而非聚集索引一个表可以存在多个,这个跟没问题没差别,一般人都知道。

2、聚集索引存储记录是物理上连续存在,而非聚集索引是逻辑上的连续,物理存储并不连续

五、netcore中间件的使用方式几种

Use、Run、Map三种

六、vue的v-show、v-if的区别

实现本质方法区别

  • vue-show本质就是标签display设置为none,控制隐藏
  • vue-if是动态的向DOM树内添加或者删除DOM元素
  • 一般来说,v-if 有更高的切换开销,而 v-show 有更高的初始渲染开销。因此,如果需要非常频繁地切换,则使用 v-show 较好;如果在运行时条件很少改变,则使用 v-if 较好。

七、truncate,delete的区别及二者速度比较

truncate全部删除表了,没有日志记录不可恢复

有ROLLBACK命令DELETE可被恢复

truncate速度大于delete

八、TPL是什么

任务并行库,TPL主要覆盖了三大使用场景,数据并行、任务并行和流水线,TPL以其高度的封装特性,隐藏了并行编程里复杂的处理,使得开发人员可以以较低的门槛进行并行编程

九、left join 和right join性能区别

百度:

如果两个表一样大,效率是bai一样的。
如果du两个表的数据量相差很大,那效率上是有区zhi别的dao。
一般来说,小表去join大表,效率要比大表去join小表高的多。

所以写SQL尽量先查询和过滤数据量小的表,再去join大的表。

十、导入一个很大的excel数据到数据库里面,怎么处理比较快

同事思路参考:导入最关键的还是插入库的操作,这个操作是最耗时的,要在这个上面下功夫,看你用的什么ORM,最后都是生成SQL,所以最好的优化方式时优化生成的sql,或者直接sql语句,另一种解决方法是通过非关系型数据库暂存,异步执行到关系数据库

原文地址:https://www.cnblogs.com/come-on-come-on/p/12800708.html