目录
前言
前阵子人事安排了好几个人过来技术面,每次都要花费不少时间结合面试者简历筛选面试题,
特此博主花了点时间整理了.net C# 比较基础且重要的技术栈面试题。非常适合应届毕业生
或者想转行.net的同学,想拿高薪的行业大牛可以直接跳过。
ps:以下部分问题的回答可能相对概述,是结合我公司实际想考察的重点来写的,如果觉得
不够详细可以自行百度。
C#基础
C#和.NET之间的关系是什么?
可以理解为包含的关系,C#是.net平台中的一种编程语言,还有F#,VB
C#中的值类型和引用类型有哪些
值类型:int short long bool char double float struct
引用类型:string(存放在常量池) class(类) interface(接口) delegate(委托)
值类型和引用类型有什么区别
值类型的赋值和操作是基于值的,每个变量都是独立的,修改一个变量不会影响其他变量。
引用类型对象的存储指向内存地址,多个变量可以引用同一个对象,修改一个变量可能会影响其他变量
说一说面向对象的三大基本特征和作用
封装:C#支持将数据和方法封装在类中,通过访问修饰符(如public、private、protected)控制对类的成员的访问权限,实现数据的隐藏和保护。
继承:C#支持类的继承,一个类可以派生自另一个类,并继承其属性和方法。继承允许代码重用和层次化的组织。
多态:通过基类引用指向派生类的对象,可以实现基于对象的实际类型进行方法调用,提供灵活性和可扩展性。
实例:审批流项目中有会签、或签两种签核方式 这两种方式都实现了验证接口(批准/驳回)
根据实际业务场景创建签核方式对象 类型声明为 验证接口类型
在C#中委托的作用是什么?
委托是一种类型,它可以用于存储对一个或多个方法的引用。
委托允许将方法作为参数传递给其他方法,从而实现回调函数的功能
委托和lambda表达式有什么关系?
C#2.0只有委托
C#3.0开始引入Lambda表达式,是匿名函数,可以对委托进行简写,微软针对委托提供的语法糖
lambda在ORM框架中大量使用
在C#中Action类和Func类有什么作用二者有什么区别
作用:C#内置委托,简化对委托的定义
区别:Action无返回值 void,Fuc有返回值
LINQ是什么?
C#内置查询语言,供了一种统一的查询语法和编程模型,用于从各种数据源(如集合、数据库、XML等)中进行数据查询和操作
Task类是什么
Task是C#对多线程操作的封装
现在有A B C三个异步方法,在同步的情况下 A执行3S,B 2S,C 5S
A(),B(),C()顺序执行需要几秒 答:瞬时
A(),await B(),C() 答:2S
await A(),await B(),awiat C() 答:10S
泛型是什么,有什么作用
可以在不同类型上工作的可重用代码。通过泛型,我们可以定义类、结构、接口和方法,使其具有参数化类型,以便在使用时指定具体的类型。
作用:
类型安全性:泛型在编译时进行类型检查,可以在编译时捕获类型错误,避免在运行时出现类型转换错误或运行时异常。
代码重用:通过泛型,可以编写可重用的代码,而不需要为每种类型编写重复的代码。这样可以提高代码的可维护性和可扩展性。
.net core
asp.net core跟asp.net有什么区别
跨平台,它可以运行在三大操作系统上面,windows, Linux和MAC
.net core是模块化框架、asp.net 相当于全家桶,把所有东西都放进来了不管用不用
ioc生命周期
transient
scoped
singleton
如何读取静态文件
可以通过中间件UseStaticFiles来配置读取静态文件
如何添加全局请求日志
通过AOP的方式实现ActionFilter接口
鉴权技术
OAuth
JWT
Session、Cookie
ORM框架
如何理解.net core 中的管道模型
请求管道描述的是一个请求进到后端应用,后端应用如何处理的过程,从接收到请求,之后请求怎么流转,经过哪些处理,最后怎么返回响应。请求管道就是一次请求在后端应用的生命周期。