C#.Net最新面试题
本专栏面试题是笔者多年的面试经验,题型包括C#基础、数据库、算法、数据结构、设计模式、系统架构等方面,适用于中高级开发工程师和架构师进行复盘和准备。
知更鸟的码
你所浪费的今天,是昨天死去的人所奢望的明天;你所厌恶的现在,是未来的你所回不去的曾经。
展开
-
C#中迭代器模式到IEnumerable接口到foreach遍历的解析
在讲foreach循环遍历之前,不得不先提下Iterator迭代器模式。迭代器模式是针对集合对象而生的,对于集合对象而言,肯定会涉及到对集合的添加和删除操作,同时也肯定支持遍历集合元素的操作,我们此时可以把遍历操作放在集合对象中,但这样的话,集合对象就承担太多的责任了。面向对象设计原则中有一条就是单一职责原则,所有要尽可能地分离这些职责,用不同的类去承担不同的责任,迭代器模式就是用迭代器类来承担遍历集合的职责。迭代器模式...原创 2020-10-16 14:36:01 · 235 阅读 · 0 评论 -
C#中可变参数params解析
params MSDN的解释:使用params关键字可以指定采用数目可变的参数的方法参数。参数类型必须是一维数组。在方法声明中的params关键字之后不允许有任何其他参数,并且在方法声明中只允许有一个params关键字。如果params参数的声明类型不是一维数组,则会发生编译器错误CS0225。使用params参数调用方法时,可以传入:数组元素类型的参数的逗号分隔列表。 指定类型的参数的数组。 无参数。如果未发送任何参数,则params列表的长度为零。直...原创 2020-10-15 18:22:17 · 4434 阅读 · 0 评论 -
C#中this关键字的用法详解
用法一 代表当前类的实例对象class Program{ static void Main(string[] args) { //Person实例化为对象p Person p = new Person(); p.Age = 18; Console.WriteLine(p.MyAge()); }}public class Person{ //这个Age代表类的全局变量 public int Age { ..原创 2020-10-14 19:39:43 · 5661 阅读 · 0 评论 -
关系型数据库中,关系的完整性有哪几种
关系模型中有3类完整性约束:域完整性、实体完整性、参照完整性。1.域(列)完整性也就是用户定义的表字段的完整性通常指数据的有效性,它包括字段的值域、字段的类型及字段的有效规则等约束,它是由确定关系结构时所定义的字段的属性决定的。限制数据类型,缺省值、规则、约束、是否可以为空,域完整性可以确保不会输入无效的值。比如某个属性的值必须在某个范围内,或者默认为0等,这些就是域(列)完整性,也就是用户定义的完整性。简单来说就是对表字段的约束。2.实体(行)完整性实体完整性是对关系中的记录...原创 2020-10-14 17:08:36 · 13077 阅读 · 1 评论 -
C#关键字out与ref的区别
问题:为什么C#中要有ref和out?先看下面一段代码:想通过Exchange方法交换A、B两个变量的值,交换前A=10,B=20.static void Main(string[] args){ int A = 10; int B = 20; Exchange(A,B); Console.WriteLine($"交换后,A为{A},B为{B}");}//交换A、B的值private static void Exchange(int A, int B){原创 2020-10-14 15:30:17 · 463 阅读 · 0 评论 -
C#中的异常处理try catch finally
C#中的异常处理是一种检测和处理代码中运行时错误的机制,由try catch和finaly块提供支持。.NET框架提供了常见异常的内置类。程序执行期间发生的异常,它们可能是由于逻辑或系统错误引起的。如果程序员未提供处理这些异常的机制,则.NET运行时环境将提供默认机制,该机制将终止程序执行。try..catch..finallyC#提供了三个关键字try,catch和finally,以实现异常处理。尝试将可能引发异常的语句括起来,而如果存在则catch会处理异常。finally可以用于完成任何.原创 2020-10-13 18:29:56 · 4114 阅读 · 0 评论 -
“throw” 和“throw ex”之间有区别吗?
throw和throw ex都用于了解异常发生的位置。throw ex重写异常的堆栈跟踪信息,而不管实际在哪里被抛出。先看以下代码:输出结果如下所示:Exception 1: at throws.Program.DivByZero() in C:\Users\Administrator\source\repos\copy\throw\Program.cs:line 65 at throws.Program.ThrowException1() in C:\Users\Admin...原创 2020-10-13 17:25:29 · 811 阅读 · 0 评论 -
如何在C#中做deep copy?
介绍System.Object是所有类,结构,枚举和委托的基类。我们可以说它是类型层次结构的根。System.Object有一个称为MemberwiseClone的方法,该方法有助于创建当前对象实例的克隆副本。问题陈述System.Object的MemberwiseClone方法创建一个新对象的浅表副本,并将当前对象实例的非静态字段复制到一个新对象。复制对象是按属性逐个执行的,如果属性是值类型,则它会一点一点地复制数据,如果属性是引用类型,则它将复制原始对象的引用。这意味着MemberwiseC.原创 2020-10-13 16:34:07 · 2201 阅读 · 1 评论 -
C# 中的浅拷贝和深拷贝
C#中的浅复制和深复制示例在本文中,我将通过示例讨论C#中的浅拷贝和深拷贝。这是我们上一篇文章的续篇。因此,在继续本文之前,请阅读我们以前的文章,其中我们使用示例讨论了C#中的原型设计模式。浅复制和深复制在复制原型设计模式中的对象中起着重要作用。因此,在本文中,我们将通过示例讨论什么是“浅复制”和“深复制”以及它们之间的区别。了解C#中的浅表复制:如果是“浅复制”,它将从现有对象创建新对象,然后将当前对象的值类型字段复制到新对象。但是在引用类型的情况下,它将仅复制引用,而不复制被引用对象本身原创 2020-10-13 14:56:32 · 2095 阅读 · 0 评论 -
C#引用类型和值类型在堆、栈中的存储
一、栈和堆是什么程序运行时,它的数据必须存储在内存中。一个数据项需要多大的内存、存储在什么地方、以及如何存储都依赖于该数据项的类型。运行中的程序使用两个内存区域来存储数据:栈和堆。1、栈栈是一个内存数组,是一个LIFO(last-in first-out,后进先出)的数据结构。栈存储几种类型的数据:某些类型变量的值、程序当前的执行环境、传递给方法的参数。栈的特点:(1)数据只能从栈的顶端插入和删除。(2)把数据放到栈顶称为入栈。(3)从栈顶删除数据称为出栈。2、堆堆是一块内存原创 2020-10-12 16:14:10 · 7660 阅读 · 4 评论 -
2020年最新 C# .net 面试题,月薪20K+中高级/架构师必看(十)
笔者近几年前前后后面试了50+公司左右,怎么讲呢,每个面试官的风格都不一样,要问的问题也不尽相同。但是面试是需要技巧的,提前准备工作以及如何把简历写得让人眼前一亮是很有必要的,关于这一块将在其它篇幅作介绍。话不多说,先总结出面试遇到的主流面试题,将分8篇文章,每篇25道,几乎涵盖90%以上的面试知识点,适用于中高级、架构师去复习,暂时还那么多时间把答案写出来,后续会加上,如果大家有好的答案也可以在评论区写出来,谢谢大家。226、内存泄漏和内存溢出的区别是什么?227、HTTPS和HTTP的区别是什么原创 2020-07-30 12:16:28 · 672 阅读 · 0 评论 -
2020年最新 C# .net 面试题,月薪20K+中高级/架构师必看(九)
笔者近几年前前后后面试了50+公司左右,怎么讲呢,每个面试官的风格都不一样,要问的问题也不尽相同。但是面试是需要技巧的,提前准备工作以及如何把简历写得让人眼前一亮是很有必要的,关于这一块将在其它篇幅作介绍。话不多说,先总结出面试遇到的主流面试题,将分8篇文章,每篇25道,几乎涵盖90%以上的面试知识点,适用于中高级、架构师去复习,暂时还那么多时间把答案写出来,后续会加上,如果大家有好的答案也可以在评论区写出来,谢谢大家。201、简述 private、 protected、 public、 interna原创 2020-07-30 11:10:23 · 968 阅读 · 0 评论 -
2020年最新 C# .net 面试题,月薪20K+中高级/架构师必看(八)
176、Mutex和lock有何不同?一般用哪一个作为锁使用更好?177、线程池的优点有哪些?又有哪些不足?178、多线程和异步有什么关系和区别?179、lock为什么要锁定一个参数,可不可锁定一个值类型?这个参数有什么要求?180、字段与属性有什么异同?181、使用什么工具来调用存储过程?182、&和&&的区别?183、Session有什么重大BUG,微软提出了什么方法加以解决?184、185、186、187、188、189、.原创 2020-07-30 10:12:26 · 1200 阅读 · 0 评论 -
2020年最新 C# .net 面试题,月薪20K+中高级/架构师必看(七)
151、编写一个带参数,带返回值的自定义事件。152、多服务器如何生成全局唯一ID?153、简述socket通信建立和断开链接的过程。154、Javascript是否存在面向对象概念中的类?如果存在,如何定义?155、在前端开发中,SPA代表什么意思?实现SPA的有哪些框架?用过哪些方式来优化页面组件156、如何解决.net中的内存泄漏问题?用到过哪些检测工具?157、列出你所了解的设计模式,并用代码写出一个例子。说一说使用设计模式可能带来的好处。158、在设计一个自定义类型时应原创 2020-07-30 10:11:25 · 731 阅读 · 0 评论 -
2020年最新 C# .net 面试题,月薪20K+中高级/架构师必看(六)
126、详诉下内存中的堆和栈。127、用SQL进行行转列。128、Ajax调用的时候,get、post有什么区别?129、返回类型ActionrResult 的方法可以重载吗? 返回的类型有哪几种?130、.net 怎么实现事务?131、数据库优化方面有什么了解?132、描述线程与进程的区别?133、什么是Windows服务,它的生命周期与标准的EXE程序有什么不同134、什么是强类型,什么是弱类型?哪种更好些?为什么?135、PID是什么?在做系统的故障排除时如何使用.原创 2020-07-30 10:09:55 · 627 阅读 · 0 评论 -
2020年最新 C# .net 面试题,月薪20K+中高级/架构师必看(五)
101、现场编码,要求写出:缓存类+SqlHelper类,然后由代码引向面象对象或设计模式。102、数据库-索引的坏处,事务的级别,分布式事务的原理。103、电商,瞬时抢购的方案,你会如何设计,参考第100题。104、4G内存的电脑,如何读取8G的日志文件进行分析,汇总数据成报表。105、回归基础题,说说 数组、链表、Hash表的缺点。106、IIS中应用程序池的集成模式和经典模式的区别。107、说说你认为的安全都有涉及到哪些地方?108、说说你认为的性能都体现在哪些地方?1原创 2020-07-30 10:09:00 · 1186 阅读 · 0 评论 -
2020年最新 C# .net 面试题,月薪20K+中高级/架构师必看(四)
七十六、C#中 property 与 attribute的区别,他们各有什么用处,这种机制的好处在哪里?七十七、C#中的LINQ七十八、string str=null 与 string str="" 的区别?七十九、.net的错误处理机制是什么?八十、在.Net中所有可序列化的类都被标记,为什么?八十一、用sealed修饰的类有什么特点?八十二、什么是SOAP,有哪些应用?八十三、ADO.net中常用五个主要对象是什么?分别描述一下。八十四、什么是强类型系统?八十五、简要原创 2020-07-30 10:07:34 · 576 阅读 · 0 评论 -
2020年最新 C# .net 面试题,月薪20K+中高级/架构师必看(三)
五十一、字典Dictionary的内部机制是如何实现的?五十二、数据库锁有哪几种?五十三、什么是代码锁?应用场景?五十四、常见的算法和数据结构?五十五、请写一个简单的冒泡排序程序出来?五十六、压力测试用的是什么工具,单台服务器最大的QPS是多少?五十七、自动化测试工具有用过吗,请举例?五十八、如何检测数据库中某条执行很慢的查询语句?五十九、什么是T4模板,用它来做什么?六十、你是如何理解敏捷开发模式的?敏捷开发中应该存在哪些角色?六十一、Cors是如何避免跨域的,还有原创 2020-07-30 10:04:56 · 873 阅读 · 0 评论 -
2020年最新 C# .net 面试题,月薪20K+中高级/架构师必看(二)
二十六、public static const int A=1这段代码有错误么?是什么?二十七、string 和stringbuilder的区别?二十八、聚集索引和非聚集索引的区别?二十九、复合索引?三十、值类型与引用类型的区别?三十一、前端闭包的概念?三十二、储存过程到底是对数据库做了优化,还是没有优化?三十三、EF和dapper的区别,EF有哪些缺点。三十四、接口不能随便给外界访问,认证方式用的哪些?三十五、Redis的持久性?三十六、测试框架有哪些,测试用例的好原创 2020-07-30 10:03:46 · 1196 阅读 · 0 评论 -
2020年最新 C# .net 面试题,月薪20K+中高级/架构师必看(一)
一、如何在.NET中做deep copy?二、throw与throw e的区别?应该用哪一个?三、finally block是什么时候调用的?四、out和ref有什么区别?五、在关系型数据库里,referential integrity(应用完整性)是什么意思?六、解释this关键字?它可以在静态方法中使用吗?七、在GOF设计模式的3类中各选一个设计模式来说明其用途?八、mock和stub有啥区别。九、SoC是什么意思?十、cross cutting concen(纵切关原创 2020-07-30 10:00:37 · 2491 阅读 · 0 评论 -
C# .Net面试题库总结(二)
1、转义符指的就是一个'\'+一个特殊的字符,组成了一个具有特殊意义的字符。\n:表示换行\":表示一个英文半角的双引号\t:表示一个tab键的空格\b:表示一个退格键,放到字符串的两边没有效果\r\n:windows系统不认识\n,只认识\r\n\\:表示一个\2、@符号1、取消\在字符串中的转义作用,使其单纯的表示为一个'\'2、将字符串按照编辑的原格式输出3、类型转换A:我们要求等号两边参与运算的操作数的类型必须一致,如果不一致,满足下列条件会发生自动类型转换,或者称之原创 2020-06-30 00:41:26 · 1033 阅读 · 0 评论