首页 > 其他分享 >.net面试题

.net面试题

时间:2023-08-12 15:44:44浏览次数:37  
标签:面试题 C# 代码 修饰符 引用 类型 net IOC

第一问:C#中变量类型分为哪两种?

​ 值类型和引用类型,值类型变量自身存储数据,引用类型存储的势实际数据的引用,通过引用找到实际的数据。

第二问:Class和Struct的区别?

​ Class为引用类型,可以被实例化,存储实际的引用;Struct为值类型,值类型自身存储数据数据。

第三问:C#中类的修饰符和类成员的修饰符有哪些?

​ C#中可以修饰类的修饰符为:public、internal、sealed、abstract

​ C#中不能修饰类的修饰符为:private和protected

​ C#中成员的修饰符为:public、internal、protected、private

​ public:完全公开,没有访问限制。

​ internal:可以应用于当前应用程序以及类库。

​ protected:在当前类和子类中可以使用。

​ private:只有在当前类中可以使用。

​ sealed:密封类,不能被其他类型继承。

​ abstract:抽象类,不能创建实例。

第四问:面向对象的三个特征(特点)是什么?

​ 封装:把对象的属性或者行为邓庄起来,类似于一个类。

​ 继承:子类可以继承父类。

​ 多态:父类可以应用于子类,子类可以去使用父类的一些特征方法。

第五问:面向对象和面向过程的区别?

​ 面向对象:把问题分解成多个对象,强调的是解决问题行为标准(方式)

​ 面向过程:分析问题并解决问题的步骤,强调的势解决问题的步骤。

第六问:什么是装箱和拆箱?

​ 装箱:从值类型转换到引用类型。

​ 拆箱:从引用类型到值类型的转换。

第七问:什么是IOC?

​ 控制反转,是一种思想(设计模式)而不是一种技术实现。

​ 控制:拥有创建对象的权利。

​ 反转:把控制权交给IOC容器。

​ 优点: 1、对象之间的耦合度或依赖度降低。

​ 2、资源容易管理

​ 传统模式下:在一个类中需要new关键字去实例化另一个类。

​ IOC设计模式:不需要new去创建对象,直接从IOC容器中获取。

第八问:什么是OOP?

​ 面向对象编程

​ 提取共有的属性和方法,形成一个父类。

第九问:什么是AOP?

​ 面向切面的编程,在不改变原有的业务逻辑情况下,横切逻辑代码,解耦合代码,避免横切代码重复。

​ 切:指的是横向逻辑,就是保证原有的业务逻辑代码不变,操作横切逻辑代码,所以就是面相横切编程。

​ 面:横切代码影响的是很多方法,每个方法如同一个点,很多点就形成面。

​ 应用场景:事务控制,权限效验、日志信息等。

​ 多个方法的相同位置出现重复代码。

第十问:什么是DI?

​ 依赖注入

​ DI是IOC设计思想的实现方式

​ 一个类去引用另外一个类,就会产生依赖。

​ 优点:如果添加另一个类,不需要修改之前代码,只要修改注入的地方将实现类进行替换。

​ 实例化接口的时候,不用手动new来狗仔实现类,交给IOC容器进行构建。

​ 实现了解耦

​ DIP:依赖注入倒置原则:依赖于抽象,不依赖预聚体,高层模块不依赖于低层模块,它们依赖于抽象。

标签:面试题,C#,代码,修饰符,引用,类型,net,IOC
From: https://www.cnblogs.com/MuyingBlog/p/17624899.html

相关文章

  • [MDP.Net] 平台架構
    MDP.Net將應用系統切割為:模組、隔離、平台三個分層,透過架構設計提供模組重用、參數調整、環境建置...等等面向的快速開發能力。-模組:企業的商業知識、共用的功能邏輯,在MDP.Net裡會被開發成為一個一個的「模組」,方便開發人員依照商業需求,快速組合出應用系統。-隔離:MDP.Net加......
  • [MDP.Net] 模組架構
    MDP.Net遵循三層式架構,將模組開發切割為:系統展示、領域邏輯、資料存取三個分層,減少模組對於元件、平台、框架的直接依賴,提高模組自身的內聚力。-系統展示(Presentation):與目標客戶互動、與遠端系統通訊...等等的功能邏輯,會被歸類在系統展示。例如,使用MessageBox通知使用者處理......
  • 7.7 通俗易懂详解稠密连接网络DenseNet & 手撕稠密连接网络DenseNet
    一.思想与ResNet的区别DenseNet这样拼接有什么好处?DenseNet优点对于每一层,使用前面所有层的特征映射作为输入,并且其自身的特征映射作为所有后续层的输入。DenseNet的优点:缓解了消失梯度问题,加强了特征传播,鼓励特征重用,并大大减少了参数的数量,改进了整个网络的信息流和梯度,这使得......
  • .NET后台任务-Worker services in .NET
    来自你的消息:怎么理解Workerservicesin.NET?来自ChatAI的消息:WorkerServices是.NETCore中的一个特性,它使开发人员能够轻松创建和托管长时间运行的后台任务或服务。WorkerServices使用.NETCore的异步编程模型和可扩展性,可以在不同的环境中运行,如Windows服务、Linux守......
  • 【面试题】前端面试十五问
    数组去重遍历旧数组,然后拿着旧数组元素去查询新数组,如果该元素在新数组里面没有出现过,我们就添加,否则不添加先封装一个函数,uniquefunctionunique(arr){varnewArr=\[]for(vari=0;i<arr.length;i++){if(newArr.indexOf(arr\[i]===-1){newArr.push(arr\[i])}}return......
  • 【面试题】这道面试题真的很变态吗?
    最近帮公司招聘,主要负责一面,所以基本上问的基础多一点。但是我在问这样一道面试题的时候,很少有人答对。不少人觉得我问这道题多少有点过分了......
  • 【面试题】 JavaScript中高级语法--?? 表达式 的作用
    前言在JavaScript中,双问号(??)表达式是一种非常有用的方法。它的作用是用来检测一个值是否为null或undefined。如果该值为null或undefined,那么双问号表达式会返回一个默认值。下面我们就来具体探究一下双问号表达式的用法,以及它与其他相似方法的区别。具体用法。其实,双问号表达式就是......
  • AirNet使用笔记9
    摘要:音视频工具;1、合成通用音视频工具,工具支持将屏幕操作记录文件(.dat/.fdat)和语音回放文件(.wav)合成为通用视频格式文件(例如.mp4).dat是一种自定义的数据格式;.fdat是mp4格式;合并时候需要直接把fdat和wav进行合成(屏幕记录文件(.dat/.fdat)放入工具目录下的datafiles文件夹中;将音频文......
  • B3-1 NetGen6.1安装
    安装NetGen6.11、下载https://github.com/NGSolve/ngsolve/releases/download/v6.2.2008/NGSolve-6.2.2008-win64.msi2、配置与NetGen6.1版本匹配的python3.7,安装python并添加到环境目录。3、运行安装好之后运行netgen.exe如果运行不成功,大概率是python和conda版本冲突,或......
  • 使用ASP.NET Identity管理用户认证与授权
    当开发涉及用户认证与授权的网站或应用程序时,ASP.NETIdentity是一个强大的工具,可以帮助你管理用户的身份验证和授权需求。它提供了一套易于使用且高度可定制的功能,让你可以轻松地实现用户管理功能。在本博客中,我们将探讨如何使用ASP.NETIdentity来管理用户认证与授权。什么是......