.net 面试题
文章平均质量分 65
用于分享.net面试常用题,
武功山上捡瓶子
No1_Plus 时间皆苦唯有自渡,生活:一半烟火,一半清欢;人生:一半清醒,一半释然
展开
-
.NET/C#面试题汇总系列:ASP.NET MVC
MVC(Model View Controller)模型-视图-控制器aspx中 View,视图;Model:DataSet、Reader、对象;Controller:cs代码。MVC是典型的平行关系,没有说谁在上谁在下的关系,模型负责业务领域的事情,视图负责显示的事情,控制器把数据读取出来填充模型后把模型交给视图去处理。而各种验证什么的应该是在模型里处理了。它强制性的使应用程序的输入、处理和输出分开。MVC最大的好处是将逻辑和页面分离。原创 2024-03-19 19:38:45 · 334 阅读 · 0 评论 -
.NET/C#面试题汇总系列:Asp.Net WebForm
Server.Transfer 方法把执行流程从当前的ASPX文件转到同一服务器上的另一个ASPX 页面,调用Server.Transfer时,当前的ASPX页面终止执行,执行流程转入另一个ASPX页面,但新的ASPX页面仍使用前一ASPX页面创建的应答流。Response.Redirect 则是客户端第一次请求服务器返回状态代码302及新URL,客户端再次请求新URL,服务器再返回新页面,比Server.Transfer多一次应答。ExecuteScalar:返回结果集的第一行第一列,忽略其他行。原创 2024-03-19 19:37:18 · 264 阅读 · 0 评论 -
.NET/C#面试题汇总系列:微服务
这意味着对一个小单元的损害不会损害其他的单元,因此,蜜蜂可以在不影响完整蜂巢的情况下重建这些单元。微服务,又名微服务架构,是一种架构风格,它将应用构建为一个小型自治服务的集合,以业务领域为模型。4)混合技术栈:可以用不同的语言和技术来构建同一应用程序的不同服务。他们最初从使用各种材料的小单元开始,一点点的搭建出一个大型蜂巢。2)独立部署:根据他们所提供的服务,可以在任何应用中单独部署。这里,每个小单元都独立于另一个,但它也与其他小单元相关。这些小单元组成坚固的结构,将蜂窝的特定部分固定在一起。原创 2024-03-19 19:36:14 · 457 阅读 · 0 评论 -
.NET/C#面试题汇总系列:LINQ、EF和ORM
ORM 指的是面向对象的对象模型和关系型数据库的数据结构之间的互相转换。(表实体跟表之间的相互转换)ORM 框架有很多,EF 框架是 ORM 框架的其中一种,是实现了 ORM 思想的框架。O=>表实体M=>映射关系R=>数据库.表。原创 2024-03-19 19:34:02 · 372 阅读 · 0 评论 -
.NET/C#面试题汇总系列:WebService、gRPC
Web Service是基于网络的、分布式的模块化组件,它执行特定的任务,遵守具体的技术规范,这些规范使得Web Service能与其他兼容的组件进行互操作。原创 2024-03-18 21:31:37 · 380 阅读 · 0 评论 -
.NET/C#面试题汇总系列:缓存
客户端缓存,本地缓存(memorycahce),CDN缓存,反向代理缓存(Nginx),分布式缓存(Redis)原创 2024-03-18 21:29:29 · 635 阅读 · 0 评论 -
.NET/C#面试题汇总系列:异常处理
异常是一种耗费资源的机制,每当异常被抛出时,异常堆栈将会被建立,异常信息将被加载,而通常这些工作的成本相对较高,并且在尝试性类型转换时,这些信息都没有意义。(1)is 只负责检查类型的兼容性,并返回结果:true 和 false。Exception(违例)表示需要捕捉或者需要程序进行处理的异常,它处理的是因为程序设计的瑕疵而引起的问题或者在外的输入等引起的一般性问题,是程序必须处理的。1)运行时异常:表示无法让程序恢复的异常,导致的原因通常是因为执行了错误的操作,建议终止程序,因此,编译器不检查这些异常。原创 2024-03-18 21:08:44 · 335 阅读 · 0 评论 -
.NET/C#面试题汇总系列:多线程与并发
而同一进程中的不同线程共享代码和数据空间。用一个比喻来说,如果一个家庭代表 一个进程,在家庭内部,各个成员就是线程,家庭中的每个成员都有义务对家庭的财富进行积累,同时也有权利对家庭财富进行消费,当面对一个任务的时候,家庭也可以派出几个成员来协同完成,而家庭之外的人则没有办法直接消费不属于自己家庭的 财产。线程(Thread)与进程(Process)二者都定义了某种边界,不同的是进程定义的是应用程序与应用程序之间的边界,不同的进程之间不能共享代码和数据空间,而线程定义的是代码执行堆栈和执行上下文的边界。原创 2024-03-18 21:06:00 · 424 阅读 · 0 评论 -
.NET/C#面试题汇总系列:委托、事件、Lambda表达式
声明一个委托类型,它的实例引用一个方法,该方法获取一个 int 参数,返 void。理解委托的一个要点是它们的安全性非常高。在定义委托时,必须给出它所表示的方法的签名和返回类型等全部细节。理解委托的一种比较好的方式是把委托当作这样一件事情:它给方法的签名和返回类型指定名称。其语法类似于方法的定义,需要在定义方法的前面加上 delegate 关键字。原创 2024-03-18 21:04:56 · 501 阅读 · 0 评论 -
.NET/C#面试题汇总系列:特性与反射
程序集包含模块,而模块又包括类型,类型下有成员,反射就是管理程序集,模块,类型的对象,它能够动态的创建类型的实例,设置现有对象的类型或者获取现有对象的类型,能调用类型的方法和访问类型的字段属性。它是在运行时创建和使用类型实例。原创 2024-03-18 21:02:32 · 397 阅读 · 0 评论 -
.NET/C#面试题汇总系列:集合
ArrayList:ArrayList 是.Net Framework 提供的用于数据存储和检索的专用类,它是命名空间 System.Collections 下的一部分。IList 是个接口,定义了一些操作方法这些方法要你自己去实现,当你只想使用接口的方法时,这种方式比较好。他不获取实现这个接口的类的其他方法和字段,有效的节省空间。数组:是存储同类型数据列表,数组在内存中是连续存储的。优点:存储、修改、读取速度快。IList 泛型接口是 Icollection 接口的子代,并且是所有非泛型列表的基接口。原创 2024-03-18 20:59:52 · 375 阅读 · 0 评论 -
.NET/C#面试题汇总系列:泛型
泛型是程序设计语言的一种特性。允许程序员在强类型程序设计语言中编写代码时定义一些可变部分,那些部分在使用前必须作出指明。各种程序设计语言和其编译器、运行环境对泛型的支持均不一样。将类型参数化以达到代码复用提高软件开发工作效率的一种数据类型。泛型类是引用类型,是堆对象,主要是引入了类型参数这个概念。原创 2024-03-18 20:57:07 · 401 阅读 · 0 评论 -
.NET/C#面试题汇总系列:面向对象
接口:接口不能被实例化接口只能包含方法声明接口的成员包括方法、属性、索引器、事件;抽象类是一个不完整的类,需要进一步细化,而接口是一个行为规范接口可以被多重实现,抽象类只能被单一继承接口可以用于支持回调,而继承并不具备这个特点。面向过程和面向对象都是解决问题的逻辑方法,分析问题既可以用面向对象的方法来思考,也可以用面向过程方法来解决,但两者还是有一定区别。3)抽象类可以但不是必须有抽象属性和抽象方法,但是一旦有了抽象方法,就一定要把这个类声明为抽象类。● 类可以继承,也可以实现接口;原创 2024-03-18 20:54:48 · 408 阅读 · 0 评论 -
asp.Net 面试资料 -- 基础语法
栈:由编译器自动分配、释放。在函数体中定义的变量通常在栈上。堆:一般由程序员分配释放。用new、malloc等分配内存函数分配得到的就是在堆上。存放在栈中时要管存储顺序,保持着先进后出的原则,他是一片连续的内存域,有系统自动分配和维护;堆:是无序的,他是一片不连续的内存域,有用户自己来控制和释放,如果用户自己不释放的话,当内存达到一定的特定值时,通过垃圾回收器(GC)来回收。栈内存无需我们管理,也不受GC管理。当栈顶元素使用完毕,立马释放。而堆则需要GC清理。原创 2024-03-18 20:53:38 · 342 阅读 · 0 评论 -
AI面试官:Entity Framework (EF)(三)
答:数据迁移是在数据库模型发生变化时,保持数据库结构和数据与模型的同步的过程。EF通过数据迁移工具可以自动创建、更新和删除数据库表结构,以便与最新的实体类保持一致。// 添加新的迁移 Add - Migration InitialCreate // 更新数据库结构 Update - Database答:N+1查询问题是指在查询包含导航属性的实体时,EF会执行额外的N条SQL查询来加载导航属性的数据,导致性能问题。原创 2023-08-01 20:58:50 · 383 阅读 · 0 评论 -
AI面试官:Xml知多少
答案:XML 是可扩展标记语言,用于在不同应用程序之间传输和存储数据。与 HTML 不同,XML 不预定义标签,而是允许开发人员自定义标签和标签的结构,因此更适合用于数据交换和存储。答案:XML Schema 是一种用于定义 XML 文档结构和数据类型的规范。它可以用来验证 XML 文档的有效性,并确保文档符合预期的结构和数据类型。原创 2023-07-27 20:51:06 · 76 阅读 · 0 评论 -
Xml文件相关操作
C#中的XML是一种可扩展标记语言(Extensible Markup Language),用于存储和交换数据。在C#中,我们可以使用内置的System.Xml命名空间来处理和操作XML数据。原创 2023-07-27 20:50:10 · 509 阅读 · 0 评论 -
索引能优化查询,那么谈谈索引的优点和缺点?索引原理
这种表我们称为堆表,因为所有的数据页都是无序的,杂乱无章的,在查询数据时,需要一条一条记录查询,有时第一条记录就能找到,最坏的情况是在最后一条记录中查找到,但是千万不要认为SQL此时查找到数据后会当成结果立即返回,SQL即使查找到了记录,也会将所有数据遍历一次,这能从最终的执行计划中得知,就是平时说的表扫描,对于没有索引的表也能查询,就是效率会特别低,如果数据量稍大的话。原理和上述非聚集索引的查询差不多,由于记录是按聚集索引键值进行排序,即聚集索引的索引键值也就是具体的数据页。原创 2023-07-27 10:34:04 · 516 阅读 · 0 评论 -
AI面试官:MD5、DES、RSA、AES加密
MD5(Message Digest Algorithm 5)是一种常用的哈希算法,用于将输入数据生成固定长度的哈希值(通常是128位),也称为MD5摘要。在实际应用中,MD5常用于验证数据完整性和文件完整性。例如,网站提供文件下载时,会提供对应的MD5值,用户下载后可以计算文件的MD5值,与提供的值进行比对,确保文件未被篡改。加密算法的强度是指抵抗密码破解攻击的能力。在选择加密算法时,强度非常重要,因为一个强大的加密算法可以防止攻击者通过暴力破解等方法获取敏感数据。原创 2023-07-26 21:32:57 · 183 阅读 · 0 评论 -
AES加密的基本常识和封装类
AES(Advanced Encryption Standard)是一种对称密钥加密算法,被广泛用于保护敏感数据的安全性。它是一种块加密算法,意味着它将明文数据分成固定大小的块,并使用相同的密钥对每个块进行独立加密。AES算法支持不同的密钥长度,包括128位、192位和256位密钥。原创 2023-07-26 21:32:22 · 593 阅读 · 0 评论 -
DES加密的基本常识和封装类
DES(Data Encryption Standard)是一种对称加密算法,它是在1977年由IBM所提出,并在1981年被美国国家标准局(NIST)确定为数据加密标准。DES使用相同的密钥对数据进行加密和解密,因此属于对称加密算法。虽然DES在过去被广泛使用,但由于其较短的密钥长度(56位)导致了一些安全性方面的问题,因此在现代应用中,更常用的是使用更安全的AES(Advanced Encryption Standard)算法。不过,了解DES的工作原理仍然是有益的。原创 2023-07-26 21:31:40 · 146 阅读 · 0 评论 -
RSA加密的基本常识和封装类
RSA(Rivest-Shamir-Adleman)是一种非对称加密算法,广泛应用于数据加密、数字签名和密钥交换等领域。在RSA加密封装中,主要涉及生成密钥对、加密和解密的过程。原创 2023-07-26 21:30:52 · 233 阅读 · 0 评论 -
MD5加密的基本常识和封装类
MD5(Message Digest Algorithm 5)是一种常见的哈希算法,用于将任意长度的数据转换为固定长度的(通常是128位或16字节)哈希值。它是MD家族中的第五个算法,广泛用于数据校验、数字签名、密码存储等领域。MD5是单向函数,即无法从生成的哈希值反推出原始数据,这也是其常用于对敏感信息进行加密或签名的原因之一。原创 2023-07-26 21:30:03 · 321 阅读 · 0 评论 -
AI面试官:Asp.Net 中使用Log4Net (三)
当面试涉及到使用log4net日志记录框架的相关问题时,通常会聚焦在如何在.NET或.NET Core应用程序中集成和使用log4net。原创 2023-07-25 20:59:03 · 630 阅读 · 0 评论 -
AI面试官:Asp.Net 中使用Log4Net (二)
解答:可以通过配置log4net的来实现自定义日志格式。可以使用特定的转换字符来定义日志的输出格式,如%date表示日期,%level表示日志级别,%logger表示日志记录器名称,%message表示日志消息等。原创 2023-07-25 20:58:28 · 767 阅读 · 0 评论 -
AI面试官:Asp.Net 中使用Log4Net (一)
解答:log4net是一个开源的日志记录框架,用于在.NET应用程序中记录日志信息。它可以帮助开发人员将不同级别的日志信息输出到不同的目标(如文件、数据库、控制台等),以便进行应用程序的调试、监控和错误追踪。案例和代码:假设有一个.NET Core Web API应用程序,我们可以通过集成log4net来记录API请求和异常信息,并将日志信息输出到文件中。原创 2023-07-25 20:57:53 · 520 阅读 · 0 评论 -
Asp.Net 6中使用Log4Net
在 ASP.NET MVC 中使用 Log4net 需要进行一些配置和代码集成。原创 2023-07-25 20:57:12 · 926 阅读 · 0 评论 -
Asp.Net MVC 使用Log4Net
在 ASP.NET MVC 中使用 Log4net 需要进行一些配置和代码集成。原创 2023-07-25 20:56:37 · 1056 阅读 · 0 评论 -
Asp.Net 使用Log4Net (SQL Server)
首先,在你的SQL Server数据库中创建一个用于存储日志的表。原创 2023-07-25 20:55:40 · 550 阅读 · 1 评论 -
Asp.Net 使用Log4Net (封装帮助类)
首先,在你的项目中创建一个Log4Net帮助类,用于封装Log4Net的配置和日志记录逻辑。原创 2023-07-25 20:55:07 · 486 阅读 · 0 评论 -
Asp.Net 使用Log4Net (基础版)
创建ASP.NET Web Forms项目 在Visual Studio中创建一个新的ASP.NET Web Forms项目。命名为"Log4NetDemo"。原创 2023-07-25 20:54:31 · 535 阅读 · 0 评论 -
C# LINQ和Lambda表达式对照
要求:两个DataTable关联,查找只在第一个表中的数据。sql语法:(sql语句表关联有多种方法,在此只举一例)原创 2023-07-24 20:19:19 · 1307 阅读 · 0 评论 -
AI面试官:LINQ和Lambda表达式(三)
解答:延迟执行是指LINQ查询在遍历结果之前不会立即执行,而是在实际需要时才会执行查询。立即执行是指LINQ查询会立即执行,返回实际结果。在LINQ中,使用deferred关键字可以区分两者。案例和代码:假设有一个数据源numbers,我们通过Where筛选出大于10的元素,然后通过Select将它们投影为新的集合。Where是延迟执行的,而Select。原创 2023-07-24 20:18:32 · 660 阅读 · 0 评论 -
AI面试官:LINQ和Lambda表达式(二)
解答:Lambda表达式的闭包是指它可以访问其周围范围内的变量,即使这些变量在其声明的范围外也是如此。在LINQ中,闭包允许在查询中引用外部变量,使得查询更加灵活和动态。orderOrderIdorderAmountC解答:延续操作符是指在LINQ查询中可以连续使用多个操作符,从而构建复杂的查询逻辑。常见的延续操作符包括WhereSelectOrderBy等。原创 2023-07-24 20:17:41 · 1190 阅读 · 0 评论 -
AI面试官:LINQ和Lambda表达式(一)
解答:LINQ(Language Integrated Query)是一种在C#编程语言中集成的查询技术,它允许在代码中使用类似SQL的查询语法来查询数据。LINQ的主要优势包括简洁高级的查询语法、静态类型安全、流畅可组合的查询逻辑、优化性能、可读性高以及客户端处理能力。案例和代码:假设有一个包含学生信息的Studentget;set;get;set;解答:延迟执行是指LINQ查询不会立即执行,而是在访问查询结果之前保持未执行状态。当你需要实际使用查询结果时,它会被执行。原创 2023-07-24 20:16:44 · 1208 阅读 · 0 评论 -
C# 为什么说LINQ要胜过SQL
虽然LINQ在许多方面都有优势,但并不意味着它完全替代了SQL。在处理复杂的数据查询和性能优化方面,SQL仍然有其优势。在实际开发中,我们需要根据具体情况选择合适的工具和技术,有时候可能需要同时使用LINQ和SQL来达到最佳效果。原创 2023-07-24 20:15:53 · 314 阅读 · 0 评论 -
使用Newtonsoft直接读取Json格式文本(Linq to Json)
如果你使用 Visual Studio,可以右键点击项目,选择“管理 NuGet 程序包”,然后搜索并安装 Newtonsoft.Json。使用 Newtonsoft.Json(通常简称为 Newtonsoft)可以轻松地处理 JSON 格式的文本。Newtonsoft.Json 是 .NET 中一个流行的 JSON 处理库,它提供了丰富的功能和灵活性。通过使用 Newtonsoft.Json,你可以灵活地读取和解析 JSON 格式的文本,并方便地提取所需的数据。,然后通过键值索引的方式获取其中的属性值。原创 2023-07-24 20:15:15 · 1951 阅读 · 0 评论 -
C#中使用LINQ和lambda实现左链接、右链接、内链接
在 C# 中使用 LINQ 和 lambda 表达式可以实现左链接(Left Join)、右链接(Right Join)和内链接(Inner Join)操作。这些链接操作是针对两个数据集合之间的关联查询,用于获取满足特定条件的匹配项。以上是使用 LINQ 和 lambda 表达式实现左链接、右链接和内链接操作的示例。左链接返回两个集合中的所有元素,并且还包括满足指定条件的匹配项。右链接返回两个集合中的所有元素,并且还包括满足指定条件的匹配项。内链接返回两个集合中满足指定条件的匹配项。原创 2023-07-24 20:13:50 · 3263 阅读 · 0 评论 -
聊聊Linq中.AsEnumerable(), AsQueryable() ,.ToList(),的区别和用法
这些方法在使用时有不同的效果和影响,需要根据具体场景来选择合适的方法。根据具体的业务场景和性能需求,选择合适的方法能够提高程序性能并有效地处理数据。当使用LINQ查询数据时,我们常常会面临选择使用。原创 2023-07-24 20:12:30 · 1454 阅读 · 0 评论 -
.NET Core EF使用事务
.NET Core EF使用事务原创 2023-07-27 10:33:41 · 386 阅读 · 0 评论