前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >.NET面试题汇总

.NET面试题汇总

作者头像
小语雀网
发布2022-05-09 17:28:31
1K0
发布2022-05-09 17:28:31
举报
文章被收录于专栏:小语雀网
1、抽象类和接口的区别?

抽象类

接口

不同点

用abstract定义

用interface定义

只能继承一个类

可以实现多个接口

非抽象派生类必须实现抽象方法

实现接口的类必须实现所有成员

需要override实现抽象方法

直接实现

相同点

不能实例化

包含未实现的方法

派生类必须实现未实现的方法

2、什么是委托?

概念:委托是一种引用类型,表示对具有特定参数列表和返回类型的方法的引用

委托的好处:

1.相当于用方法作为另一方法参数(类似于C的函数指针)

2.在两个不能直接调用的方法中作为桥梁,如:在多线程中的跨线程的方法调用就得用委托

3.当不知道方法具体实现什么时使用委托,如:事件中使用委托

3、什么是泛型

概念:通过参数化类型来实现在同一份代码上操作多种数据类型,利用“参数化类型”将类型抽象化,从而实现灵活的复用。

优点:使用泛型类型可以最大限度地重用代码、保护类型的安全以及提高性能。泛型最常见的用途是创建集合类。

缺点:在性能上不如数组快

记:通过参数化类型来实现在同一份代码上操作多种数据类型,使用泛型类型可以最大限度地重用代码、保护类型的安全以及提高性能。

4、装箱和拆箱

装箱:值类型转引用类型

拆箱:引用类型转值类型

5、值类型和引用类型分别有哪些?

值类型:结构体(数值类型,bool型,用户定义的结构体),枚举,可空类型。

引用类型:数组,用户定义的类、接口、委托,object,字符串。

6、c#事件和委托的区别

使用位置不同:事件只能在本类型内部“触发”,委托不管在本类型内部还是外部都可以“调用”。

使用符号不同:在类的外部,事件只能用“+=”和“-=”去订阅/取消订阅,如果是委托的话还可以使用“=”。

7、MVC提交表单的几种方式

1、HtmlHelper方法

2、传统Form表单Aciton属性提交

3、Jquery+Ajax 提交表单

4、MVC Controller控制器和表单参数传递

8、NET中的错误处理机制是什么?

采用 try-catch-finally结构,发生错误时,层层上抛,直到找到匹配的catch为止。

9、什么是过滤器?

过滤器作用:  一般用于记录日志、异常处理、身份验证、行为记录等。

.Net MVC 常用的4种过滤器:

Action行为过滤器:在Action执行之前和执行之后调用

Result结果过滤器:在结果之前和之后调用。

Exception异常过滤器:在发生异常时调用。

Authorization权限效验过滤器:身份验证时调用。

10、垃圾(GC)回收机制

.net平台会自动把声明的那些不再使用的变量,或者是对象占用的空间释放, 而不用你自己书写代码实现这样的功能

11、C# 托管与非托管的理解

运行于.net平台上的代码,分配的资源一般会自动由平台的垃圾回收器释放,这样的资源就是托管资源。

但是一些例外的资源,如System.IO.StreamReader等各种流、各种连接所分配的资源,需要显式调用Close()或Dispose()释放,这种资源就叫做非托管资源。

12、a是10,b是15,不用中间变量交换 a ,b

a = a + b;

b = a - b;

a = a - b;

13、&和&&的区别

&是位运算符,表示按位与运算,&&是逻辑运算符,表示逻辑与(and)

14、post、get的区别

1.post的参数不会显示在浏览器地址栏中,get的参数会显示在浏览器地址栏中

2.用post可提交较大的数据量,get提交的数据量则非常小(2k)

3.用post可进行文件的提交,而用get则不可以

15、try{}里有一个return语句,那么紧跟在这个try后的finally {}里的code会不会被执行,什么时候被执行,在return前还是后?

会执行,在return前执行。

16、StringBuilder 和 String 的区别?

1.StringBuilder 是可扩展的,在大量字符串拼接时使用

2.String 在进行运算时会产生一个新的实例

17、Equal与==的区别

==操作符判断的是堆栈中的值,Equlas判断的是堆中的值

18、=、==和===的区别

=是赋值的意思

==是判断等于的意思

===也是判断的,但是它要比==判断的严谨一点,它的判断必须什么都相等,比如说类型

19、ADO.NET中读写数据库需用到哪些对象?作用是什么

DataConnection 连接数据库

DataCommand 执行语句命令

DataSet 数据存储器

DataAdapter 适配器,用于填充数据

DataReader 数据读取器,用于向前只读的数据流

20、详细描述三层架构开发模式以及三层架构的好处?

界面层:设计界面,与用户交互;

业务逻辑层(BLL):维护界面层和数据访问层之间的安全性,对传送的数据进行判断分析,将正确值进行传送;

数据访问层(DAL):主要是存放对数据类的访问,即对数据库的增删改查的操作;

好处:目的是“高内聚,低耦合“的思想,分工明确,条理清晰,易于调试 ,而且具有可扩展性

21.重写和重载的区别?

重写:当一个子类继承一个父类,而子类中的方法与父类中的方法名称、参数个数、参数类型一致时,就说明这个子类重写了父类的方法;

重载:方法名称相同,参数类型不同。调用时,编译器会根据实际传入参数的形式,选择与其匹配的行。

22、数组和集合的区别?

数组声明元素类型,集合不声明;

数组定长,占用内存小,速度快,集合不定长,占用内存大,速度慢;

数组存放类型只能是一种,集合不止一种

23、值类型和引用类型的区别?

值类型:存放在堆栈中,存储空间小,调用速度快,直接存储其值,从System.ValueType中派生,内存自动释放,简单类型,枚举,结构;

引用类型:存放在堆中,存储空间大,调用速度慢,存储对值的引用,从System.Object中派生,由GC自动释放,接口类型,数组类型,委托类型;

值类型的变量直接存储数据

引用类型的变量持有的是数据的引用,数据存储在数据堆中

24、请详细描述C#中的访问修饰符都有哪些?

private:私有成员,类内部可访问;

protected:保护成员,类内部和继承类可访问;

public:公开成员,没有访问限制;

internal:同一程序集可访问;

protected internal/internal protected:同一程序集和子类可访问

25、设计模式六大设计原则

单一职责原则:一个类值负责一个功能的职责

开闭原则:扩展开放,修改关闭。

里氏代换原则:使用父类的地方都能使用子类对象

依赖倒转原则:针对接口编程,

接口隔离原则:针对不同部分用专门接口,不用总接口,需要哪些接口就用哪些接口

迪米特法则: 软件实体类,尽量不与其他实体类发生关系相互作用,对外都统一的暴露接口就行了

26、面向对象三大特性

封装、继承、多态

27、你是如何理解面向对象思想?

面向对象编程的本质就是:以类的方式组织代码,以对象的组织(封装)数据。 面向对象的特点:抽象,封装,继承,多态。

引用一段话: 假如我是上帝,我要造人(对象),首先,人要有思想,人要有肉体(这个过程就是抽象) 因为人数量大,我需要找别人帮我一起造人,但是我不想让知道我的技术,我可以把我的造人技术封装起来,他只知道他要做什么样的人类就好了【封装】 当我在造人的时候累了,我可能要用我之前造人的模板进行”复制“,”粘贴“。用模板造出来的人具有模板的特征,就像孩子一样具有父母的形状。【继承】 为了让人类更丰富一些,我们又对它进行了改变。这个过程叫多态【多态】

面向过程编程思想:

  1. 冰箱门打开,返回值是打开的冰箱门
  2. 大象装进去,返回值是打开的门,装进大象的冰箱
  3. 冰箱门关上,返回值是关着门装进大象的冰箱

面向对象的编程思想:

  1. 冰箱.开门()
  2. 冰箱.装进大象()
  3. 冰箱.关门()
  4. 万物皆对象

缺点:解决问题时候需要先创建对象 优点:更加贴近生活,解决问题。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-04-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1、抽象类和接口的区别?
  • 2、什么是委托?
  • 3、什么是泛型
  • 4、装箱和拆箱
  • 5、值类型和引用类型分别有哪些?
  • 6、c#事件和委托的区别
  • 7、MVC提交表单的几种方式
  • 8、NET中的错误处理机制是什么?
  • 9、什么是过滤器?
  • 10、垃圾(GC)回收机制
  • 11、C# 托管与非托管的理解
  • 12、a是10,b是15,不用中间变量交换 a ,b
  • 13、&和&&的区别
  • 14、post、get的区别
  • 15、try{}里有一个return语句,那么紧跟在这个try后的finally {}里的code会不会被执行,什么时候被执行,在return前还是后?
  • 16、StringBuilder 和 String 的区别?
  • 17、Equal与==的区别
  • 18、=、==和===的区别
  • 19、ADO.NET中读写数据库需用到哪些对象?作用是什么
  • 20、详细描述三层架构开发模式以及三层架构的好处?
  • 21.重写和重载的区别?
  • 22、数组和集合的区别?
  • 23、值类型和引用类型的区别?
  • 24、请详细描述C#中的访问修饰符都有哪些?
  • 25、设计模式六大设计原则
  • 26、面向对象三大特性
  • 27、你是如何理解面向对象思想?
相关产品与服务
多因子身份认证
多因子身份认证(Multi-factor Authentication Service,MFAS)的目的是建立一个多层次的防御体系,通过结合两种或三种认证因子(基于记忆的/基于持有物的/基于生物特征的认证因子)验证访问者的身份,使系统或资源更加安全。攻击者即使破解单一因子(如口令、人脸),应用的安全依然可以得到保障。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档