TOP 20+ .NET和OOP面试题(应届生简易指南)

你正在准备.NET开发者面试吗?这里有一个快速清晰的指南,涵盖了OOP.NETMVCWeb APISQL Server问题,答案简短简单——非常适合快速复习!
🔹 OOP(面向对象编程)
1. OOP的4个支柱是什么?
封装 将数据和方法捆绑在一起
抽象 隐藏复杂性,只显示本质
继承 通过基类/派生类重用代码
多态 一个接口,多种实现(重载/重写)
2. 抽象和封装的区别
概念
抽象
封装
重点
隐藏内部_发生了什么_
隐藏数据_如何_存储
用途
接口/抽象类
访问修饰符
3. C#中接口vs抽象类
特性
抽象类
接口
方法
可以有定义
只有签名(直到C# 8)
修饰符
允许访问修饰符
所有成员都是公共的
继承
单一继承
支持多个接口
4. 重载vs重写
重载: 相同方法名,不同参数(_编译时_)
重写: 在派生类中重新定义基类方法(_运行时_)
🔹 .NET和C#面试题
5. refout的区别?
ref: 传递前必须初始化
out: 无需初始化;必须在方法内赋值
6. .NET中的垃圾回收是什么?
垃圾回收器(GC)通过销毁未使用的对象自动释放内存。
7. ==.Equals()的区别
==: 比较值(值类型)或引用(对象)
.Equals(): 可以比较内容,可以被重写
🔹 ASP.NET MVC问题
8. 什么是MVC架构?
Model: 业务逻辑和数据
View: UI层
Controller: 处理用户输入并更新Model/View
9. MVC中的路由是什么?
将URL映射到控制器/操作方法。
  1. routes.MapRoute("Default", "{controller}/{action}/{id}");
csharp
10. TempData vs ViewData vs ViewBag
特性
ViewData
ViewBag
TempData
类型
Dictionary
Dynamic
Dictionary
生命周期
当前请求
当前请求
当前+下一个请求
用例
数据到View
数据到View
跨重定向
11. MVC中的Action Filters是什么?
Action Filters允许你在控制器中的操作方法执行之前或之后运行逻辑。
示例:
[Authorize] 限制访问
[HandleError] 处理异常
[OutputCache] 缓存输出
🔹 Web API问题
12. .NET中的Web API是什么?
ASP.NET Web API是一个框架,用于构建RESTful HTTP服务,用于Web、移动或桌面应用程序。它支持内容协商(JSON/XML)并且轻量级。
13. 区别:Web API vs MVC
特性
MVC
Web API
目的
返回HTML视图
返回数据(JSON,XML)
返回类型
ViewResult
JsonResult,IHttpActionResult
14. 如何保护Web API?
🔐 使用JWT令牌OAuth 2.0
🛡️ 实现授权过滤器
🔒 使用HTTPS加密通信
15. Web API中的常见HTTP动词
GET 读取数据
POST 创建新数据
PUT 替换整个资源
PATCH 更新部分资源
DELETE 删除数据
🔹 SQL Server面试题
16. WHERE vs HAVING
WHERE: GROUP BY之前过滤
HAVING: GROUP BY之后过滤
17. SQL连接的类型
🔹 INNER JOIN 返回两个表中的匹配行
🔹 LEFT JOIN 左表的所有行+右表的匹配行
🔹 RIGHT JOIN 右表的所有行+左表的匹配行
🔹 FULL OUTER JOIN 当任一表中有匹配时的所有行
🔹 CROSS JOIN 笛卡尔积(每个组合)
18. DELETE vs TRUNCATE
特性
DELETE
TRUNCATE
日志
记录每行
最少日志
WHERE
允许
不允许
回滚
不保证
19. 什么是存储过程?
存储过程是存储在数据库中的预编译SQL语句集,用于执行特定任务。
  1. CREATE PROCEDURE GetEmployees
  2. AS
  3. BEGIN
  4. SELECT * FROM Employees
  5. END
sql
20. SQL中的索引是什么?
索引是一种技术,用于通过减少数据库引擎必须扫描的数据量来加速SQL表中的数据检索
🔍 索引类型:
🔸 聚集索引 根据键值对表中的数据行进行排序和存储。每个表只有一个。
🔸 非聚集索引 将索引与实际表数据分开存储。每个表允许多个。
🔸 唯一索引 确保索引键中的所有值都是唯一的。
🔸 全文索引 用于搜索基于文本的列(例如,LIKE,CONTAINS)。
💡 快速提示:
🎯 在解释时要清晰自信。
🛠️ 练习真实的SQL查询和索引场景。
📚 定期复习这些问题以在面试前保持敏锐。
📌 专业提示:
在处理大型数据集时,索引可以显著提高性能——特别是在WHEREJOINORDER BY查询上。