摘要: 在.NET Framework和.NET Core中,Task 和 Thread 都是用来实现并发编程的重要组成部分,但它们之间有着本质的区别。下面我将解释这两者的不同之处以及各自的用途。 Thread(线程) 定义:Thread 类代表了一个单独的执行流,它是在操作系统级别存在的实体,每个线程都有 阅读全文
posted @ 2024-07-29 21:30 .NET每天都很酷 阅读(333) 评论(0) 推荐(0) 编辑
摘要: override 用途: override 用于在派生类中重写基类中的虚方法或抽象方法。 重写的方法必须与基类中的方法具有相同的签名(方法名、参数列表和返回类型)。 基类中的方法必须声明为 virtual、abstract 或已经由另一个 override 方法重写。 多态性: override 支 阅读全文
posted @ 2024-07-29 21:24 .NET每天都很酷 阅读(72) 评论(0) 推荐(0) 编辑
摘要: 首字母指代概念 S 单一功能原则 认为“对象应该仅具有一种单一功能”的概念。 O 开闭原则 认为“软件应该是对于扩展开放的,但是对于修改封闭的”的概念。 L 里氏替换原则 认为“程序中的对象应该是可以在不改变程序正确性的前提下被它的子类所替换的”的概念。 参考契约式设计。 I 接口隔离原则 认为“多 阅读全文
posted @ 2024-07-29 09:09 .NET每天都很酷 阅读(7) 评论(0) 推荐(0) 编辑
摘要: 基础问题 什么是C#特性(Attributes)? 答:C#特性是用于向程序元素(如类型、方法、属性等)添加元数据的声明性方式。特性可以在运行时通过反射访问,并用于控制程序行为或提供额外信息。 如何创建自定义特性? 答:自定义特性需要继承自System.Attribute类。示例如下:[Attrib 阅读全文
posted @ 2024-07-27 12:34 .NET每天都很酷 阅读(9) 评论(0) 推荐(0) 编辑
摘要: 逆变的原理 当我们有一个方法或接口接受一个基类的实例作为参数时,我们希望也能接受该基类的派生类的实例。 逆变使得我们能够将 AppleAction 作为 IAction<Fruit> 使用,因为我们知道 Apple 类型的实例也是 Fruit 类型的实例。 总结 逆变 (in) 使得我们能够将一个处 阅读全文
posted @ 2024-07-26 22:27 .NET每天都很酷 阅读(8) 评论(0) 推荐(0) 编辑
摘要: 在C#中,泛型约束通常用来限制泛型类型参数必须满足某些条件。然而,C# 不允许直接将泛型类型参数限制为特定的基本类型,比如 int。这是因为泛型设计的主要目的是为了类型安全性和重用性,而直接限制到某个特定的基本类型则违反了这一目的。 尽管如此,您可以通过一些间接的方式来达到类似的效果。下面是一些可能 阅读全文
posted @ 2024-07-26 21:52 .NET每天都很酷 阅读(73) 评论(0) 推荐(0) 编辑
摘要: 在面试中讨论异步与多线程的关系及区别时,可以从以下几个方面来阐述: 关系: 并行性: 多线程和异步编程都是为了提高程序的并发能力。 在某些情况下,异步操作可以通过多线程的方式来实现。 应用场景: 当需要处理耗时的操作(如 I/O 操作、网络请求等)时,可以使用异步编程来避免阻塞主线程。 多线程通常用 阅读全文
posted @ 2024-07-26 19:46 .NET每天都很酷 阅读(50) 评论(0) 推荐(0) 编辑
摘要: 在 .NET 中使用依赖注入时,如果将 DbContext 注册为单例,会导致一些严重的问题。DbContext 设计为一个短生命周期的对象,通常与一个请求(在 Web 应用中)或一个单元操作(在桌面应用中)相对应。以下是将 DbContext 注册为单例会导致的问题: 1. 线程安全问题 DbCo 阅读全文
posted @ 2024-07-25 21:31 .NET每天都很酷 阅读(89) 评论(0) 推荐(0) 编辑
摘要: int fc = 0;var color = new List<string>() { "red", "yellow", "blue" }.Where(x => { fc++; return x.StartsWith(x); }).OrderBy(x=>x); Console.WriteLine(f 阅读全文
posted @ 2024-07-25 21:17 .NET每天都很酷 阅读(5) 评论(0) 推荐(0) 编辑
摘要: List<T>, HashSet<T>, 和 ConcurrentBag<T> 是 .NET 中常用的集合类型,它们在不同的场景下各有优势。下面我们来详细介绍它们的使用场景、性能比较以及 .Contains() 方法的性能。 List List<T> 是一个动态数组,提供了顺序访问和按索引访问的能力 阅读全文
posted @ 2024-07-25 20:40 .NET每天都很酷 阅读(111) 评论(0) 推荐(0) 编辑
点击右上角即可分享
微信分享提示