.Net面试题
1.简述private、protected、publie、 internal修饰符的访间权限。
答:
private:私有的,只能在类的内部才可以访问。
protected:保护成员,只能在类的内部和被继承的类中可以访问。
publie:公共的,任何人都可以访问,没有访问限制。
internal:在同一命名空间下可以访问。
2.C#中的委托是什么?事件是不是一种委托?
答:
委托可以把一个方法当作参数代入到另一个方法。
委托像C++里面的函数指针,但是相比函数指针它是安全的。
是,事件是一种特殊的委托。(事件不是委托,不过由于事件的性质决定了处理它的程序逻辑能访问的参数,因此,在C#中处理事件的逻辑都包装为 委托。)
5.MVC与WebApi的区别
答:
MVC主要用于建栈。
WebApi主要用于构建Http服务。
6.为什么,.Net Core可以跨频台?
答:
在.NetCore时代,IIS发生了巨大的变化。这个变化就是IIS只利用其中的ASPNetCoreModule模块转发HTTP请求,而所有的请求处理和响应,都是在Kestrel这个内置服务器中完成的。
而Kestrel服务器是跟随我们程序一起打包的。我们的程序,在Linux或mac平台上有专门的运行时,所有我们的程序都能在其他的平台上面运行。
答:
存储过程是一组予编译的SQL语句
它的优点:
1.允许模块化程序设计,就是说只需要创建一次过程,以后在程序中就可以调用该过程任意次。
2.允许更快执行,如果某操作需要执行大量SQL语句或重复执行,存储过程比SQL语句执行的要快。
3.减少网络流量,例如一个需要数百行的SQL代码的操作有一条执行语句完成,不需要在网络中发送数百行代码。
4.更好的安全机制,对于没有权限执行存储过程的用户,也可授权他们执行存储过程。
10.JavaScript的模板?
答:
Vue、Angular、Js、React、Jquery。
11.new 关键字用法
答:
(1)new 运算符 用于创建对象和调用构造函数。
(2)new 修饰符 用于向基类成员隐藏继承成员。
答.
1使用QueryString,如.…?id=1;response.Redirect()..…
2.使用Session变量
3.使用Server.Transfer
4.使用Application
5.使用Cache
6使用HttpContext的Item属性
7.使用文件
8.使用数据库
9.使用Cookie
即:DateBase First(数据库优先)、Model First(模型优先)和Code First(代码优先)。
当然,如果把Code First模式的两种具体方式独立出来,那就是四种了。
Code First(New DataBase):在代码中定义类和映射关系并通过mode生成数据库,使用迁移技术更新数据库。
Code First(Existing DataBase):在代码中定义类和映射关系,给逆向工程提供工具。
Model First:在设计器中创建Model,并用Model生成数据库。所有的类由Model自动生成。
DateBase First:在设计器中逆向生成Model,并有Model自动生成所有的类。
15.什么是跨域,怎么解决?
答:
跨域,指的是浏览器不能执行其他网站的脚本。它是由浏览器的同源策略造成的,是浏览器施加的安全限制。
解决办法有1、JSONP:2、代理:3、PHP端修改header(XHR2方式)
关于跨域想深入了解可以:https://blog.csdn.net/lambert310/article/details/51683775
16.MVC有几种缓存?
答:
1、Control缓存
2、Action缓存
3、使用配置文件进行缓存配置
4、缓存依赖
地址:https://www.cnblogs.com/xiaomowang/p/6626712.html
17.MVC的几种传值方式
答:
1.ViewData
2.ViewBag
3.TempData
4.Model