上海某国企社招的.NET面试题,给开8K值吗?

共 8790字,需浏览 18分钟

 ·

2023-06-06 08:29



    今天我要分享的是某上海国企社招的.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年,大家说怎么样?可以去吗?小编觉得如果图稳定可以去,毕竟是国企。希望本次的面试题能给大家的面试有所帮助,对于以上面试题你有什么看法欢迎大家留言讨论。






版权声明:本文来源于网友收集或网友供稿,仅供学习交流之用,如果有侵权,请转告小编或者留言,本公众号立即删除。








5db9a25afe06c87c1e483712106ec67f.webp

支持小薇







关注公众号DotNet开发跳槽    











b1b1524436cacae8968b55078deadc26.webp









32c70a0213c3b852acc12b5c678bea16.webp









b358e67617d7e5f2f527f5ed7cdcdebb.webp



点在看





浏览 34
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报