- C# 学习路径。基础:语法、类型、控制流、OOP。进阶:泛型、集合、LINQ、异步、反射。框架:ASP.NET Core Web API/MVC、EF Core、Blazor。架构:SOLID、设计模式、整洁架构、DDD。高级:性能优化、内存管理、并发编程、微服务。实践:项目实战、开源贡献、LeetCode。资源:官方文档、书籍(C# in Depth)、YouTube 教程。 C# 学习路径。基础:语法、类型、控制流、OOP。进阶:泛型、集合、LINQ、异步、反射。框架:ASP.NET Core Web API/MVC、EF Core、Blazor。架构:SOLID、设计模式、整洁架构、DDD。高级:性能优化、内存管理、并发编程、微服务。实践:项目实战、开源贡献、LeetCode。资源:官方文档、书籍(C# in Depth)、YouTube 教程。
- DDD 业务复杂度建模。战略设计:限界上下文 Bounded Context、通用语言 Ubiquitous Language、上下文映射。战术设计:实体 Entity(标识)、值对象 ValueObject(无标识不可变)、聚合 Aggregate(一致性边界)、领域服务 Domain Service、领域事件 Domain Event。仓储 Repository 抽象持久化。对比事务脚本... DDD 业务复杂度建模。战略设计:限界上下文 Bounded Context、通用语言 Ubiquitous Language、上下文映射。战术设计:实体 Entity(标识)、值对象 ValueObject(无标识不可变)、聚合 Aggregate(一致性边界)、领域服务 Domain Service、领域事件 Domain Event。仓储 Repository 抽象持久化。对比事务脚本...
- Hot Reload 运行时修改代码。dotnet watch run 自动重启。Visual Studio 热重载:修改代码 Apply Changes。支持:方法体、局部变量、新增方法(有限)。不支持:新增类型、修改签名、修改 LINQ。Blazor WASM/Server 支持。ASP.NET Core 支持。提升开发效率,减少重启。 Hot Reload 运行时修改代码。dotnet watch run 自动重启。Visual Studio 热重载:修改代码 Apply Changes。支持:方法体、局部变量、新增方法(有限)。不支持:新增类型、修改签名、修改 LINQ。Blazor WASM/Server 支持。ASP.NET Core 支持。提升开发效率,减少重启。
- 管道过滤器处理数据流。IPipe<TIn,TOut> 管道,IFilter<T> 过滤器。链式组合。ASP.NET Core 中间件就是管道。自定义:数据处理管道、验证管道、转换管道。责任链模式类似。优势:可组合、可测试、关注点分离。实现:委托链、接口链、LINQ 聚合。 管道过滤器处理数据流。IPipe<TIn,TOut> 管道,IFilter<T> 过滤器。链式组合。ASP.NET Core 中间件就是管道。自定义:数据处理管道、验证管道、转换管道。责任链模式类似。优势:可组合、可测试、关注点分离。实现:委托链、接口链、LINQ 聚合。
- System.Collections.Generic 提供类型安全集合。List<T> 动态数组,随机访问 O(1)。Dictionary<TKey,TValue> 哈希表 O(1)。HashSet<T> 去重集合。LinkedList<T> 双向链表。SortedDictionary 有序字典。ConcurrentDictionary 线程安全。IEnumerable<T> 延迟执行, I... System.Collections.Generic 提供类型安全集合。List<T> 动态数组,随机访问 O(1)。Dictionary<TKey,TValue> 哈希表 O(1)。HashSet<T> 去重集合。LinkedList<T> 双向链表。SortedDictionary 有序字典。ConcurrentDictionary 线程安全。IEnumerable<T> 延迟执行, I...
- 索引 ^1 倒数第一个,^2 倒数第二个。范围 .. 切片。int[] arr = {1,2,3,4,5}; arr[^1] 是 5。arr[1..3] 是 {2,3}。arr[..2] 前两个,arr[3..] 后两个。自定义类型支持:Indexer [Index i]、[Range r]。Range 结构体 Start/End。Span 切片高效。字符串也支持。 索引 ^1 倒数第一个,^2 倒数第二个。范围 .. 切片。int[] arr = {1,2,3,4,5}; arr[^1] 是 5。arr[1..3] 是 {2,3}。arr[..2] 前两个,arr[3..] 后两个。自定义类型支持:Indexer [Index i]、[Range r]。Range 结构体 Start/End。Span 切片高效。字符串也支持。
- FluentValidation 流式验证规则。AbstractValidator<T> 定义规则。RuleFor(x => x.Name).NotEmpty().MaximumLength(50)。链式:NotNull().NotEmpty().EmailAddress()。条件验证 When/Unless。集合验证 RuleForEach。自定义验证 Must。异步验证 Async。集成... FluentValidation 流式验证规则。AbstractValidator<T> 定义规则。RuleFor(x => x.Name).NotEmpty().MaximumLength(50)。链式:NotNull().NotEmpty().EmailAddress()。条件验证 When/Unless。集合验证 RuleForEach。自定义验证 Must。异步验证 Async。集成...
- C# 模式匹配:从 is 到 switch 表达式的演进之路 C# 模式匹配:从 is 到 switch 表达式的演进之路
- 小李:王哥,我从C++转C#已经两周了,感觉代码写得很别扭。很多C++的习惯在C#里好像都不对劲,你能不能给我一些建议?王哥:当然可以!我当初转型时也经历过这个阶段。咱们就从几个最重要的方面开始吧。首先,你要完成一个最重要的心态转变—— 心态转变:从“控制一切”到“信任框架”王哥:在C++里,我们习惯了掌控一切:内存、资源、底层实现。但在C#里,你需要学会信任.NET框架和垃圾回收器。小李:... 小李:王哥,我从C++转C#已经两周了,感觉代码写得很别扭。很多C++的习惯在C#里好像都不对劲,你能不能给我一些建议?王哥:当然可以!我当初转型时也经历过这个阶段。咱们就从几个最重要的方面开始吧。首先,你要完成一个最重要的心态转变—— 心态转变:从“控制一切”到“信任框架”王哥:在C++里,我们习惯了掌控一切:内存、资源、底层实现。但在C#里,你需要学会信任.NET框架和垃圾回收器。小李:...
- EFCore.VisualizerEFCore.Visualizer 是一款可以直接在 Visual Studio 中查看 EF Core 查询计划调试器可视化工具(帮助开发者分析和优化数据库查询性能),目前,该可视化工具支持 SQL Server、PostgreSQL、SQLite、MySQL 和 Oracle。开源地址:https://github.com/Giorgi/EFCore.V... EFCore.VisualizerEFCore.Visualizer 是一款可以直接在 Visual Studio 中查看 EF Core 查询计划调试器可视化工具(帮助开发者分析和优化数据库查询性能),目前,该可视化工具支持 SQL Server、PostgreSQL、SQLite、MySQL 和 Oracle。开源地址:https://github.com/Giorgi/EFCore.V...
- 前言TIOBE 公布的数据显示,C# 以 2.94% 的年度最大涨幅再度获评2025 年度编程语言,在近三年内,C# 第二次被 TIOBE 指数评为年度编程语言。这一荣誉授予了在年度排名中涨幅最大的编程语言,而 C# 正是凭借这一最大增幅获此殊荣。多年来,C# 经历了根本性的变革:从语言设计的角度来看,它常常是主流编程语言中率先采纳新趋势的先行者。与此同时,C# 成功实现了两次重大转型:一是... 前言TIOBE 公布的数据显示,C# 以 2.94% 的年度最大涨幅再度获评2025 年度编程语言,在近三年内,C# 第二次被 TIOBE 指数评为年度编程语言。这一荣誉授予了在年度排名中涨幅最大的编程语言,而 C# 正是凭借这一最大增幅获此殊荣。多年来,C# 经历了根本性的变革:从语言设计的角度来看,它常常是主流编程语言中率先采纳新趋势的先行者。与此同时,C# 成功实现了两次重大转型:一是...
- 一月头条:C# 当选 2025 年度编程语言在三年内第二次,C# 被 TIOBE 指数评为“年度编程语言”。C# 之所以获得这一称号,是因为其排名较上一年上涨幅度最大。多年来,这门语言经历了根本性的变化。从语言设计角度看,C# 常常是主流语言中较早采纳新趋势的那一类。同时,它成功完成了两次重大的范式转变:从仅限 Windows 到跨平台运行,以及从微软专有到开源。C# 总是在合适的时机持续... 一月头条:C# 当选 2025 年度编程语言在三年内第二次,C# 被 TIOBE 指数评为“年度编程语言”。C# 之所以获得这一称号,是因为其排名较上一年上涨幅度最大。多年来,这门语言经历了根本性的变化。从语言设计角度看,C# 常常是主流语言中较早采纳新趋势的那一类。同时,它成功完成了两次重大的范式转变:从仅限 Windows 到跨平台运行,以及从微软专有到开源。C# 总是在合适的时机持续...
- 前言在 C# 中,问号(?)远不止是一个简单的标点符号。随着语言版本的迭代更新,C# 围绕问号(?)发展出了一套强大而优雅的空值处理和条件表达机制。熟练掌握这些操作运算符不仅能大幅提升代码的简洁性和可读性,还能有效避免恼人的空引用异常,构建更加健壮的应用程序。 可空类型修饰符(?)在 C# 中,值类型(如int、long、bool、DateTime等)默认不能为null。使用 ? 修饰符,... 前言在 C# 中,问号(?)远不止是一个简单的标点符号。随着语言版本的迭代更新,C# 围绕问号(?)发展出了一套强大而优雅的空值处理和条件表达机制。熟练掌握这些操作运算符不仅能大幅提升代码的简洁性和可读性,还能有效避免恼人的空引用异常,构建更加健壮的应用程序。 可空类型修饰符(?)在 C# 中,值类型(如int、long、bool、DateTime等)默认不能为null。使用 ? 修饰符,...
- Python和C#都是现代、高级、面向对象的编程语言,拥有庞大的社区和广泛的应用。然而,它们源于不同的生态系统,秉承不同的设计哲学,因此在语法、执行模型和典型应用上存在显著差异。Python以其极简主义和灵活性著称,而C#则以其在强大类型系统和结构化框架下的优雅与一致性闻名。下面,我们将从整体到细节,系统地剖析这两种语言的差异。 一、整体与哲学设计哲学与起源Python: 由Guido va... Python和C#都是现代、高级、面向对象的编程语言,拥有庞大的社区和广泛的应用。然而,它们源于不同的生态系统,秉承不同的设计哲学,因此在语法、执行模型和典型应用上存在显著差异。Python以其极简主义和灵活性著称,而C#则以其在强大类型系统和结构化框架下的优雅与一致性闻名。下面,我们将从整体到细节,系统地剖析这两种语言的差异。 一、整体与哲学设计哲学与起源Python: 由Guido va...
- 在C++和C#的跨语言开发中,布尔类型的处理差异常常成为难以察觉的"坑"。当Windows API的BOOL、C++的bool、C#的bool在同一个系统中交织时,开发者很容易陷入内存对齐错误、序列化问题和逻辑判断陷阱。本文将从语言设计哲学出发,深入剖析这些差异的根源,并提供实用的解决方案。 一、C++布尔类型:历史包袱与现代实践 1.1 两种布尔类型的起源bool - C++98引入的原生... 在C++和C#的跨语言开发中,布尔类型的处理差异常常成为难以察觉的"坑"。当Windows API的BOOL、C++的bool、C#的bool在同一个系统中交织时,开发者很容易陷入内存对齐错误、序列化问题和逻辑判断陷阱。本文将从语言设计哲学出发,深入剖析这些差异的根源,并提供实用的解决方案。 一、C++布尔类型:历史包袱与现代实践 1.1 两种布尔类型的起源bool - C++98引入的原生...
上滑加载中
推荐直播
-
华为云码道Agent集成与鸿蒙实战2026/08/11 周二 19:00-21:00
王一男-华为云码道产品规划专家;李炎-华为云码道产品专家;彭江敏-华为云鸿蒙端云一体化开发专家
本次直播带你解读华为云码道7月份产品新特性、新功能。更有专家演示码道Agent Space × 钉钉机器集成实战,从0到1打通消息通道;码道鸿蒙端云一体化实战,快速搭建员工签到系统。
回顾中 -
华为云开发者AI素养直播课·第五期2026/09/04 周五 16:00-18:00
林华鼎-华为云AI开发者运营负责人;蒋春阳-华为云AI开发者案例开发专家
本期直播内容: AI工具体验营 · 第5-8课连讲。Agent-Team 多智能体协作完成毕业设计实践
回顾中 -
华为云开发者AI素养ClassRoom·第六期2026/09/08 周二 19:00-20:00
樊渊-2026华为软件挑战赛冠军
高手来了:看软挑高手解析二维排样问题—从工业难题到算法突破
回顾中
热门标签