首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

苏州同程旅游学长给我全面的面试知识库

这是C#面试问题答案精选列表,面试过程中可能会提出这些问题。根据他们经验其他各种因素,可能会向候选人询问基本C#面试问题,以提高C#.NET面试水平。...7、定义构造函数 构造函数是与该类具有相同名称类中成员函数。每当创建对象类,都会自动调用构造函数。它在初始化类构造数据成员。 8、什么是锯齿状阵列? 具有数组类型元素数组称为锯齿数组。...13、常量只读之间有什么区别? 常量变量在编译声明初始化。此后无法更改该。只读仅在我们要在运行时分配使用。 14、什么是接口类?...类型将数据保存在其自己存储空间内。例子 Int = 30; 引用类型存储要在其中存储对象地址。它是指向另一个存储位置指针。 String b =“ Hello Guru99 !!”...委托是必需,因为它们可用于编写更多通用类型安全函数。 34、如何在C#中将一个类继承到其他类? 冒号C#中用作继承运算符。只需放置一个冒号,然后放置类名。

3K20
您找到你想要的搜索结果了吗?
是的
没有找到

C#透彻解析数组、ArrayListList区别

C#数组,ArrayListList都能够存储一组对象,那么这三者到底有什么样区别呢。 数组 数组C#中最早出现。...在数组两个数据间插入数据是很麻烦,而且声明数组时候必须指定数组长度,数组长度过长,会造成内存浪费,过段会造成数据溢出错误。如果在声明数组我们不清楚数组长度,就会变得很麻烦。...因为ArrayList会把所有插入其中数据当作为object类型来处理,我们使用ArrayList处理数据,很可能会报类型不匹配错误,也就是ArrayList不是类型安全。...存储或检索类型通常发生装箱取消装箱操作,带来很大性能耗损。...特定类型(Object 除外)数组 性能优于 ArrayList性能。这是因为 ArrayList元素属于 Object 类型;所以存储或检索类型通常发生装箱取消装箱操作。

1.3K30

2022年了有哪些值得推荐.NET ORM框架?

它解决了对象关系型数据库之间数据交互问题,ORM作用是关系型数据库业务实体对象之间作一个映射,这样我们具体操作业务对象时候,就不需要再去复杂SQL语句打交道,只需简单操作对象属性方法...EntityFramework.TypedOriginalValues - 通过某些特殊方法来获得数据库对象本次修改前原始。常见使用场景是对数据库操作数据做审计。...spectre.query - EF简单查询库。 StoredProcedureEFCore-用于执行存储过程 Entity Framework Core 扩展。...内存高效- 它提取并缓存您对象属性、执行上下文、对象映射 SQL 语句。它在整个转换执行过程中重用它们。 动态混合- 它提供了成熟 ORM 一些高级功能。...它极大地帮助开发人员开发过程中进行上下文切换简化体验。 开源软件——它是一个开源软件,并且永远是免费。它旨在进一步改进 .NET 数据访问体验和解决方案,以及社区集体思想。

5.8K11

金三银四面试:C#.NET面试题中高级篇3

泛型约束分为:主要约束次要约束,它们都使实参必须满足一定规范,C#编译器在编译过程中可以根据约束来检查所有泛型类型实参并确保其满足约束条件。...数组:是存储同类型数据列表,数组在内存中是连续存储。优点:存储、修改、读取速度快。...List:在数组ArrayList基础上优化,存储通用类型数据列表。优点:可扩展示,初始化无需指定长度,可插入指定位置数据 5. Set里元素是不能重复,那么用什么方法来区分重复与否呢?...equals()==方法决定引用是否指向同一对像,equals()类中被覆盖,为是当两个分离对象内容类型相配的话,返回真值。....使用C#List集合自带去重方法,例如 Distinct(),GroupBy()等 .利用 Dictionary Key唯一特性,HashSet 元素唯一特性 进行判断 7.数组有没有length

1.4K40

聊聊C#泛型使用(新手勿入)

写在前面 今天忙里偷闲浏览外文时候看到一篇讲C#中泛型使用文章,因此加上本人理解以及四级没过英语水平斗胆给大伙进行了翻译,当然翻译过程中发现了一些问题,因此也进行了纠正,当然,原文地址我放在最下面...每个集合详细规范可以System.Collection.Generic名称空间下找到。 [通用类C#] 装箱拆箱 .Net定义了两种主要数据类型来表示变量,也就是传说中类型引用类型。...这是需要装箱拆箱地方。装箱是一种通过将变量存储到System.Object中来显式地将类型转换为引用类型机制。当您装入,CLR会将新对象分配到堆中,并将类型复制到该实例中。...当编译该程序并通过IL解析器检查IL生成代码,您会注意到当b被赋值为a,程序通过IL中自动插入一个box指令来响应,当c被赋值为b如下; [IL-opcode.jpg] 代码加载常量20并将其存储本地插槽中...最后,它将被装箱20返回到堆栈上,并将其拆箱为int类型 这个过程.NET CLR执行了一系列操作,例如,首先在托管堆中分配一个对象,然后在装箱中将转换为内存位置,并在拆箱期间将存储堆上并且必须转回到堆栈

1.7K40

程序员开发者神器:10个.Net开源项目

3、一个C#开发NoSQL数据库 LiteDB是一个开源、轻量级数据库引擎,提供了简单、快速可靠数据存储功能,可用于任何移动、各种操作系统等平台。...5、一个改善Entity Framework异常处理错误信息开源项目 EntityFramework.Exceptions是一个针对Entity Framework解决异常处理方面的一些问题,为开发人员提供更好异常处理错误信息...4、支持tab补全:提供了命令行参数tab补全功能,使得用户输入参数可以更方便地浏览选择参数。...支持表达式:工作流表达式支持这类场景,方便与特定应用程序数据进行交互。 支持长期运行工作流:工作流可以执行过程中暂停,然后适当时候恢复执行。...可扩展性:可以通过自定义活动进行扩展,以适应特定应用程序需求。 事件驱动:支持事件驱动工作流,即工作流可以特定事件发生启动或恢复。

39140

使用 EF Core PostgreSQL 中 JSONB

它与 PostgreSQL 中传统 json 数据类型不同,因为它以分解二进制格式存储数据。这种格式允许高效数据处理,因为它消除了每次访问 JSON 数据重新解析 JSON 数据需要。...JSONB 优势 高效索引:JSONB 支持 GIN(广义倒排索引) B 树索引。这意味着搜索速度更快,查询大型数据集尤其有用。 数据灵活性:它允许存储查询半结构化数据。...JSONB 聚合函数 jsonb_agg 将一组 JSONB 聚合到单个 JSON 数组中。...**数据库迁移:**EF Core 将在迁移中将 JSONB 列作为字符串 (nvarchar(max)) 类型进行处理。 **透明使用:** EF Core 中无缝使用 JSONB 支持属性。...结论 PostgreSQL 中 JSONB 与 EF Core 集成为关系数据库上下文中处理复杂、嵌套动态数据结构提供了可靠解决方案。

16110

2022年了有哪些值得推荐.NET ORM框架?

它解决了对象关系型数据库之间数据交互问题,ORM作用是关系型数据库业务实体对象之间作一个映射,这样我们具体操作业务对象时候,就不需要再去复杂SQL语句打交道,只需简单操作对象属性方法...EntityFramework.TypedOriginalValues - 通过某些特殊方法来获得数据库对象本次修改前原始。常见使用场景是对数据库操作数据做审计。...spectre.query - EF简单查询库。 StoredProcedureEFCore-用于执行存储过程 Entity Framework Core 扩展。...内存高效- 它提取并缓存您对象属性、执行上下文、对象映射 SQL 语句。它在整个转换执行过程中重用它们。 动态混合- 它提供了成熟 ORM 一些高级功能。...它极大地帮助开发人员开发过程中进行上下文切换简化体验。 开源软件——它是一个开源软件,并且永远是免费。它旨在进一步改进 .NET 数据访问体验和解决方案,以及社区集体思想。

3.8K20

数组、ListArrayList区别

数组、ListArrayList区别 数组在内存中是连续存储,所以它索引速度是非常快,而且赋值与修改元素也很简单,比如: string[] s=new string[3]; //赋值 s[...比如在数组两个数据间插入数据也是很麻烦,还有我们声明数组时候,必须同时指明数组长度,数组长度过长,会造成内存浪费,数组长度过短,会造成数据溢出错误。...这样如果在声明数组我们并不清楚数组长度,就变很麻烦了。C#中最先提供了ArrayList对象来克服这些缺点。   ...ArrayList是.Net Framework提供用于数据存储检索专用类,它是命名空间System.Collections下一部分。它大小是按照其中存储数据来动态扩充与收缩。...所以,我们声明ArrayList对象并不需要指定它长度。

4.5K30

ASP.NET理论知识及面试题

EF拥有非常优雅,基于C#/VB语言优化API,比如原生LINQ查询,自然Code First对数据结构定义,Fluent API方式数据库关系定义等等。...13. c#中值类型引用类型区别     1.类型数据存储在内存栈中;引用类型数据存储在内存堆中,而内存单元中只存放堆中对象地址。     ...会执行,return前执行。  19. 如何处理几十万条并发数据?     用存储过程或事务。...取得最大标识时候同时更新..注意主键不是自增量方式这种方法并发时候是不会有重复主键..取得最大标识要有一个存储过程来获取.   20. 堆区别?     堆:一般由程序员分配释放。...1.StringBuilder 是可扩展大量字符串拼接使用     2.String 进行运算时会产生一个新实例   22.

1.8K20

.NET周刊【12月第1期 2023-12-06】

通过示例展示了将结构体成员设为只读后,尝试修改其字段,编译器不报错但修改不成功,因为只读机制会导致字段堆栈上拷贝。这种隐蔽行为可能引发 BUG,如自旋锁示例中计数错误。...结构作为类型,存储栈上,泛型参数为结构编译器生成特定实现,提升性能,减少装箱拆箱。类作为引用类型,存储堆上,泛型参数为类编译器生成通用实现,可能导致性能下降。...此版本修复了 Mono 运行时中错误。...[空数组怎么办? ] - 奇塔 https://qiita.com/RyotaMurohoshi/items/bf45f4e7d52e6aad8ef7 C# 降临节日历 2023 年第 1 天文章。...解释极端情况,例如在空数组上执行 LINQ All 结果以及存在绑定元素 OrderBy 结果。

20910

EFCore批量操作,你真的清楚吗

3个独立语句,而是被组合为一个传参存储过程脚本(用列作为参数);如果使用EF6执行相同代码,则在SQL Server Profiler中将看到3个独立插入语句 。...下面是EFCore、EF6批量插入对比截图: ? ?...① 就性能速度而言,EFCore批量插入更具优势 ② 若数据库是针对云部署,EF6运行这些查询,还将产生额外流量成本 经过验证:EFCore批量更新、批量删除功能,EFCore均发出了使用sp_executesql...存储过程+批量参数构建SQL脚本。...实现过程跟背后存储载体密切相关);关注SQL存储过程sp_executesql,官方明文显示批量操作列值参数最多2100个,这个关键因素决定了大批量操作时候 依旧会被分块传输。

3.4K10

Visual Studio 2017 15.8 版发行说明

缩短大型解决方案中卸载重载一小组 C# VB 项目的时间 - 从数分钟缩短到数秒钟。...新类型 inref outref,分别是只读 byref 只写 byref。 此对应于 C# in ref out ref。...我们进行此更改,使该功能与 C# 处理 ref 返回方式保持一致。 当类型批注指示现在使用 ref 返回隐式取消引用时,将用到错误消息。...(图 10)仅我代码 数据断点现在可在“监视”、“快速监视”、“自动”“局部变量”窗口中进行设置,从而只需几次短单击即可在存储于内存中发生更改时切断。...另外,还可以生成 Xamarin.Mac 绑定项目,不过是本地执行生成过程而不是使用本机 Mac 工具链,因此应用中运行或调试,不能使用生成 IL 程序集。

8.2K10

金三银四面试:C#.NET面试题中高级篇5-LinqEF

使用Code First模式进行EF开发开发人员只需要编写对应数据类(其实就是领域模型实现过程),然后自动生成数据库。...---->详解 6.IEnumerable缺点有哪些? IEnumerable功能有限,不能插入删除。 访问IEnumerable只能通过迭代,不能使用索引器。...迭代显然是非线程安全,每次IEnumerable都会生成新IEnumerator,从而形成多个互相不影响迭代过程迭代,只能前进不能后退。新迭代不会记得之前迭代后任何变化。...它由Threading in C#C# in a Nutshell作者Albahari编写,完全免费。...相比LINQ to Object,则是将查询表达式直接转化为Enumerable一系列方法,最终C#内部执行。

4K30

C#数组、ArrayListList区别

C#中,数组、ArrayList、List都能够存储一组对象,那么他们区别是什么呢? Array 数组在内存中是连续存储,所以它索引速度非常快,而且赋值修改元素也很简单。...存储或检索类型通常发生装箱取消装箱操作,带来很大性能耗损。...2.0 VS.NET 2005 总结 相较于数组,ArrayListList十分灵活,可以自动扩容、轻松插入新元素,此外,由于继承了IList,后者检索数据十分强大 数组可以具有多个维度,而ArrayList...这是因为ArrayList元素属于Object类型;所以存储或检索类型通常发生装箱取消装箱操作。...不过,不需要重新分配(即最初容量十分接近列表最大容量),List性能与同类型数组十分相近 决定使用List还是使用ArrayList类(两者具有类似的功能),记住List<T

22030

Unity性能调优手册2基础:硬件,渲染,数据,Unity如何工作,C#基础,算法计算复杂度

重要是要注意,即使同一目录中读/写多个文件,它们也可能不是连续物理位置,所以如果它们物理上相距很远,它们将被随机化 Tips 从存储器中读取过程 当从存储器中读取文件,省略了细节,但该过程大致遵循以下流程...译者增加部分 unity取色板中颜色为0-255 在这里插入图片描述 图像压缩 在实践中,图像通常用作压缩数据。 压缩是通过设计一种存储数据方法来减少数据量过程。...然而,如果像字节数组这样数据是从c#端加载处理,并传递给c#端,那么c#本机端都会双重消耗内存。 此外,由于资产实体是本机,调查多重资产负载泄漏难度增加。...但是,引用类型字段中声明类型和静态变量是堆区域中分配。注意,定义为结构变量不一定分配给堆栈区域。 处理数组 类型数组是内联分配数组元素是类型实体(实例)。...另一方面,引用类型数组中,数组元素是按照引用类型实体引用(地址)排列。因此,类型数组分配回收比引用类型数组成本要低得多。

44231

【深入浅出C#】章节 5: 高级面向对象编程:泛型编程集合类型

类型安全可靠性:泛型在编译进行类型检查,可以在编译阶段捕获类型错误,减少了运行时类型相关错误,提高了代码可靠性。...它们提供了方便方法来添加、删除、访问搜索集合中元素。C#中,常见集合类型包括数组、列表、字典、集合队列等。...使用场景:适用于需要频繁插入、删除遍历元素情况。 字典(Dictionary): 特点:使用键值对存储数据,快速通过键进行查找。 使用场景:适用于需要根据键快速查找访问对应情况。...LINQ查询 4.1 迭代集合类型方式循环遍历 C#中,可以使用不同方式迭代遍历集合类型,包括数组、列表、字典、集合队列。...避免频繁插入删除操作:某些集合类型频繁插入删除操作性能较低,考虑使用其他更适合集合类型或优化算法。 注意内存管理:不需要使用集合时及时释放集合,避免造成内存泄漏。

33321

Redis

数据结构 String 预分配空间:采用动态字符串格式存储,类似于STL中vector设计,当字符串大小小于1M,会预分配当前大小相同空间;当字符串大小大于1M,会预分配1M大小空间; 惰性删除...:缩短字符串不立即删除空间,而是标注待后续使用; image.png image.png List 双链表,顺序访问,便于删除插入; Redis里list是一个链表,由于链表本身插入删除比较块.../lpush操作队列,使用lpoprpop出队列; Redis发布订阅存储就是采用链表形式; image.png 异步队列结构可参考 image.png Set 用于存储无序不重复一组...随着数据量逐渐扩大,hash表再分配(即rehash过程)启用单独异步线程渐进式讲现有键值对rehash到新哈希表中,渐进式rehash过程中,用户对原hash表删改查等操作会在新旧两个...c) 小于b1最大节点a与大于b1最大节点c,将节点b1插入a与c中即可; 线程模型 高并发 IO多路复用+单线程 1.Redis基于内存存储及上述数据结构(时间复杂度是O(n)~O(log(n)

45650
领券