上海某国企社招的.NET面试题,给开8K值吗?
今天我要分享的是某上海国企社招的.NET面试题。这些面试题目由网友提供,主要包括笔试题和操作题。还是先列出面试题目,大家先试做一下,然后再看后面答案。
试题
1、请解释什么是面向对象编程(OOP)?
2、请解释程序的基本结构是什么,并简要描述每个组成部分的作用。
3、列举并解释几个C#中常用的修饰符。
4、请说明接口和抽象类之间的区别,并提供一个使用场景示例。
5、请列举并解释.NET Core和.NET Framework之间的区别。
6、Program.cs中builder.Services和var app = builder.Build()的app有什么用?
7、在.NET Core中,中间件是什么?请解释它们在请求处理过程中的作用。
8、在ASP.NET Core中,如何将服务依赖注入到控制器中?
9、在.NET Core中,有哪几种服务生命周期?请简要描述每个生命周期的特点。
10、Cookies和Session有什么区别?请解释它们在Web开发中的不同用途。
操作题:
11、请用代码反转这个字符串:string strTmp= "槽跳发开TENTOD";
12、请用C#代码计算某年某月的最后一天是几号号?比如今年二月
解答
1、请解释什么是面向对象编程(OOP)?
答:面向对象编程(OOP)是一种编程范式,它将程序设计组织为一组对象,这些对象通过相互之间的交互来完成任务。OOP的核心思想是将现实世界中的事物抽象为对象,每个对象都具有状态(属性)和行为(方法),并且可以通过封装、继承和多态来实现代码的模块化、重用性和可扩展性。这是比较官方的说法,大家可以用自己的理解回答。
详解--> 面试必备:聊聊面向对象三大特征
2、请解释程序的基本结构是什么,并简要描述每个组成部分的作用。
答:命名空间(Namespace):组织和管理相关的类和类型。
类(Class):用于定义对象的属性和方法。
方法(Method):用于定义类中的行为和操作。
变量(Variable):用于存储和操作数据。
语句(Statement):用于控制程序的执行流程。
表达式(Expression):用于计算和生成值。
注释(Comment):用于解释和说明代码的作用和用途。
这是道基础题,如果长时间不面试可能会蒙。
3、列举并解释几个C#中常用的修饰符。
答:
public:公共修饰符,表示可以从任何位置访问。
private:私有修饰符,表示只能在当前类内部访问。
protected:受保护修饰符,表示只能在当前类及其派生类内部访问。
internal:内部修饰符,表示只能在当前程序集内部访问。
protected internal:受保护的内部修饰符,表示只能在当前程序集内部和派生类内部访问。
现在最新版的还有file修饰符,如果能回答出来是加分项
详解-->面试必备:聊聊C#中public、private、protected、internal访问修饰符作用范围?
4、请说明接口和抽象类之间的区别,并提供一个使用场景示例。
答:
接口定义了一组公共的方法和属性,但不能包含实现代码。类可以实现一个或多个接口,从而获得接口定义的行为。
抽象类是一个可以包含实现代码和抽象成员的类。抽象类可以被继承,子类可以实现抽象成员并提供具体的实现。
使用场景示例:
接口通常用于定义约定和合同,使不同的类能够以一致的方式进行交互。例如,一个日志记录接口定义了写日志的方法,多个类可以实现这个接口来提供不同的日志记录实现。
抽象类通常用于作为具有共同特征的类的基类,提供通用的实现和行为。子类可以继承抽象类并扩展或覆盖其中的方法。例如,一个动物抽象类可以定义一个通用的“移动”方法,而子类如狗、猫、鸟等可以具体实现各自的移动方式。
-->c#中抽象类(abstract)和接口(interface)的相同点与区别
5、请列举并解释.NET Core和.NET Framework之间的区别。
答:
.NET Core是一个跨平台的开源框架,支持在Windows、macOS和Linux等多个操作系统上运行。它更加轻量级、模块化,并且可以选择性地引用和使用所需的组件。
.NET Framework是一个面向Windows操作系统的框架,主要用于Windows应用程序开发。它包含了大量的类库和功能,适用于各种类型的应用程序开发。
详解--> .Net Core、 .Net FrameWork和 .Net 5对比
6、Program.cs中builder.Services和var app = builder.Build()的app有什么用?
答:在Program.cs中,builder.Services 是用于配置和注册依赖注入的服务容器,通过该容器可以向应用程序添加各种服务。而 var app = builder.Build() 是用于构建 WebHost 或 Host 对象,它代表整个应用程序的主机。
7、在.NET Core中,中间件是什么?请解释它们在请求处理过程中的作用。
答:在.NET Core中,中间件是一种组件,用于处理HTTP请求和响应。中间件在请求管道中按顺序执行,并可以修改或处理请求和响应。它们提供了一种灵活的方式来处理各种功能,例如日志记录、身份验证、路由等。
在请求处理过程中,中间件可以执行以下操作:
接收并处理传入的HTTP请求。
调用下一个中间件或终止请求处理。
修改请求或响应的内容。
执行任意自定义逻辑。
更多面试题-->必考的ASP.NET Core的中间件面试题
8、在ASP.NET Core中,如何将服务依赖注入到控制器中?
答:默认在ASP.NET Core中,可以通过构造函数注入(Constructor Injection)的方式将服务依赖注入到控制器中。通过第三方注入组件可以使用接口注入和属性注入。
public class MyController : Controller
{
private readonly IMyService _myService;
public MyController(IMyService myService)
{
_myService = myService;
}
// ...
}
详解-->
面试疑问:.NET Core依赖注入有三种方式是真的吗?
9、在.NET Core中,有哪几种服务生命周期?请简要描述每个生命周期的特点。
答:
Singleton:服务在应用程序的整个生命周期中只会创建一个实例,每次请求都会使用同一个实例。
Scoped:服务在每个请求过程中创建一个实例,同一个请求内的不同组件将共享同一个实例。
Transient:每次请求都会创建一个新的实例,每次请求都使用不同的实例。
10、Cookies和Session有什么区别?请解释它们在Web开发中的不同用途。
答:
Cookies是在客户端(浏览器)上存储数据的小型文件。它们可以通过浏览器自动发送到服务器,用于识别和跟踪用户会话。
Session是在服务器端存储用户状态的机制,可以存储和检索用户特定的数据。它使用一个唯一的会话标识符(Session ID)来跟踪用户的会话状态。
主要区别如下:
存储位置:Cookies存储在客户端,Session存储在服务器端。
大小限制:Cookies的大小通常受到浏览器和服务器的限制,而Session的大小限制一般由服务器配置确定。
安全性:Cookies存储在客户端,可能会受到篡改和窃取的风险。而Session存储在服务器端,相对更安全。
数据存储:Cookies可以存储简单的键值对数据,而Session可以存储更复杂的对象和数据结构。
这道题是比较老的题了,现在都用token了。但是也必须会啊。
详解-->傻傻分不清之 Cookie、Session、Token、JWT
操作题:
11、请用代码反转这个字符串:string strTmp= "槽跳发开TENTOD";
代码如下:
string strTmp = "槽跳发开TENTOD";
char[] charArray = strTmp.ToCharArray();
Array.Reverse(charArray);
string reversedStr = new string(charArray);
Console.WriteLine(reversedStr);
//输出结果为:DOTNET开发跳槽
还可以用循环反转字符串的方式,代码如下:
string strTmp = "槽跳发开TENTOD";
char[] charArray = strTmp.ToCharArray();
int left = 0;
int right = charArray.Length - 1;
while (left < right)
{
// 交换左右两个字符
char temp = charArray[left];
charArray[left] = charArray[right];
charArray[right] = temp;
// 移动左右指针
left++;
right--;
}
string reversedStr = new string(charArray);
Console.WriteLine(reversedStr);
12、请用C#如何获得下个月的第一天和最后一天的日期?
DateTime currentDate = DateTime.Now;
DateTime firstDayOfNextMonth = new DateTime(currentDate.Year, currentDate.Month, 1).AddMonths(1);
DateTime lastDayOfNextMonth = firstDayOfNextMonth.AddMonths(1).AddDays(-1);
Console.WriteLine("下个月的第一天:" + firstDayOfNextMonth.ToShortDateString());
Console.WriteLine("下个月的最后一天:" + lastDayOfNextMonth.ToShortDateString());
这是个基础题。
结语
是不是觉得特别的简单,这是比较基础的.NET面试题,适合初级的.NET工程师。这个网友通过了面试,但是对方只能给8K,他工作经验3年,大家说怎么样?可以去吗?小编觉得如果图稳定可以去,毕竟是国企。希望本次的面试题能给大家的面试有所帮助,对于以上面试题你有什么看法欢迎大家留言讨论。
版权声明:本文来源于网友收集或网友供稿,仅供学习交流之用,如果有侵权,请转告小编或者留言,本公众号立即删除。
关注公众号↑↑↑:DotNet开发跳槽❀
点 分 享
点 收 藏
点 点 赞
点在看