.NET面试题23道

1、get、post的区别:

GET用来获取资源,它只是获取、查询数据,不会修改服务器的数据,用于幂等的情况;

POST则是向服务器发送修改请求,进行数据的修改的,适用于所有情况,建议用于不幂等的情况。

2、JavaScript向后台传值的几种方式:

(1)form表单提交(常用)

(2)JQuery中的ajax提交(常用)

(3)通过url字符串拼接向后台提交数据

(4)后台向前台:ViewBag

3、C#的错误处理机制:

try-catch-finally

4、为什么要高内聚低耦合:

为什么要高内聚?
对于同一个功能模块而言他们关系越紧密那么出错率就会相应的降低,同时也有利于编程。
为什么要低耦合?
对于一个软件而言,他的功能模块有很多,如果各个模块之间的关系越复杂,就会产生更多的意想不到的错误(例如随便改一个参数,有可能对其他模块都会造成不可预估的影响),会给以后的维护工作带来很多麻烦!

5、泛型:

泛型好处:1.性能高:定义数据类型,不需要类型转换,避免拆装箱带来的性能损失;
                  2.类型安全:定义允许使用的数据类型,在编译时检查类型错误,及早发现错误。

 6、C#面向对象的设计原则

 1.单一原则(对象职责明确原则)SRP:一个对象所完成的任务是明确的。而不能设计万能类!

2.开闭原则(开放扩展,封闭修改)OCP:如果一个项目的需求变化,会导致很多程序的修改,则我们说你的程序设计破坏了开闭原则。实际情况应该是,需求变化,尽量通过扩展对象实现,而不是修改对象。

3.里氏替换原则(LSP):父类能够被他的子类替代。是我们实现多态的基本的机制!

4.迪米特法则(Lod):也叫最小(知道、知识)原则。用于对象解耦

5.接口隔离原则(ISP):是说我们设计接口的时候,尽量以小接口出现,不要设计一个复杂接口。

 6.依赖倒置原则(DIP):高层模块不应该依赖于低层模块。两种模块都应该依赖抽象。

7、依赖注入和New的区别:

 依赖注入降低模块与模块之间耦合性

依赖倒置:高层模块不应该依赖于低层模块。两种模块都应该依赖抽象。

抽象和接口都不能被实例化;

8、设计模式:

工厂方法、桥接模式、装饰模式、代理模式、观察者模式、命令模式等

9、多态:

  抽象、虚方法、重写、重载

10.数据库三大范式:

1.原子性:属性不可分割,即每个属性都是不可分割的原子项。(实体的属性即表中的列)

2.消除部分依赖:在1NF的基础上,非主属性必须完全依赖于候选码(在1NF基础上消除非主属性对主码的部分函数依赖)。

3.消除传递依赖:在2NF基础上,任何非主属性不依赖于其它非主属性(在2NF基础上消除传递依赖)。

11.MVVM:

MVVM
vue框架中MVVM的M就是后端的数据,V就是节点树,VM就是new出来的那个Vue({})对象

M(Model):模型层。业务逻辑相关的数据对象
V(View):视图层。就是展现出来的用户界面。
VM(ViewModel):视图模型层。连接view和model的桥梁。因为,Model层中的数据往往是不能直接跟View中的控件一一对应上的,所以,需要再定义一个数据对象专门对应view上的控件。而ViewModel的职责就是把model对象封装成可以显示和接受输入

12、API中的四种调用方法:

get(获取),post(新增),put(更新),delete(删除)

13、c#委托(方法作另一个方法的参数)

 //声明委托类型
    public delegate void AssembleIphoneHandler();
    public AssembleIphoneHandler AssembleIphone;

14、.Net Core 和 .Net FrameWork区别

        1、跨平台

        2、开源

        3、新 API

        4、增强的性能

        5、并行版本控制

15、Startup中ConfigureServices和Configure有什么用

      前者主要用来注册服务,后者主要用来创建和配置请求管道,然后在Main方法中进行调用:

16、.Net Core中的中间件是什么

       中间件是一个可以处理HTTP请求或响应的软件管道。

17、Cookies 和 Session 有什么区别?

    作用范围不同,Cookie 数据保存在客户的浏览器上,Session数据 保存在服务器端。 存取方式的不同,Cookie 只能保存 ASCII,Session 可以存任意数据类型,一般情况下我们可以在 Session 中保持一些常用变量信息,比如说 UserId 等。

18、常见的数据结构

数组、链表、栈、队列、树、堆、散列表、图

19、ref和out区别:

ref在传值之前必须先声明并初始化;

out在传值之前先声明,但不初始化,必须在方法中对其完成初始化;

用ref和out时,在方法的参数和执行方法时,都要加Ref或Out关键字。以满足匹配。

out适合用在需要retrun多个返回值的地方,而ref则用在需要被调用的方法修改调用者的引用的时候。

20、什么叫面向对象?

对象是在实例化由类产生对象;

对象是由数据和允许的操作组成的包;

21、String和string的区别:

技术上没区别;

string是C#的关键字,String是类名,String是CLR的类型。

尽管 string 是引用类型,但定义相等运算符( == 和 !=)是为了比较 string 对象(而不是引用)的值;

String 对象称为不可变的(只读),因为一旦创建了该对象,就不能修改该对象的值。

22、MVC的好处:

降低成本。高重用性和可适用性。可维护性。快速的部署

23、如何优化sql

1.避免使用 select *

2 用union all代替union

3 小表驱动大表

4 批量操作

5 多用limit

6 in中值太多

7 增量查询

8 高效的分页

9 用连接查询代替子查询

10 join的表不宜过多

11 join时要注意

12 控制索引的数量

13 选择合理的字段类型

14 提升group by的效率

15 索引优化

  • 5
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 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
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值