- 博客(421)
- 收藏
- 关注
原创 冒个泡,yeah~!…
≡(_ ( ・∀・)__( 三三三三三●。╭╯去哪 快上车,GOGO~为什么我那么努力还是得不到那么多赞。(,,•́ . •̀,,)拜託嘛!似曾相识好像那年在昨天一样。快来,现在就带你去研究。
2025-12-13 11:09:12
269
原创 Solidworks 二次开发模板SwCSharpAddin
本文介绍了SolidWorks C#插件开发环境的搭建步骤及常见问题解决方案。主要内容包括:1)从Gitee仓库下载swcsharpaddin.zip模板和SolidWorksAddinInstaller.exe安装程序;2)将模板解压到Visual Studio项目模板目录;3)强调需以管理员权限运行VS。针对"系统找不到指定文件"的报错,提供了解决方案:移除模板文件中对缺失的SolidWorksToolsWizard程序集的引用,并给出了修改后的csaddin.vstemplate文
2025-12-12 23:23:07
418
原创 pycharm之gitignore设置
本文介绍了在工程文件中安装.gitignore插件的步骤:首先在工程文件处右键,进入设置选项;然后点击插件菜单,搜索.gitignore插件;最后完成安装。操作过程配有截图指引,帮助用户快速完成插件配置。
2025-12-03 11:36:16
284
原创 阿里云服务器配置-Windows安装IIS
本文介绍了在Windows系统中安装IIS(Internet Information Services)的详细步骤:1)通过Win+R运行control打开控制面板;2)进入"程序"-"启用或关闭Windows功能";3)在服务器角色中勾选"Web服务器(IIS)"并添加功能;4)根据图示选择相关组件;5)完成安装。该教程以图文结合的方式,逐步指导用户完成IIS服务的配置安装过程。
2025-12-01 09:59:50
650
原创 C#中ValueTask
C#中的ValueTask是Task的轻量级替代方案,旨在优化可能同步完成的异步操作性能。作为结构体实现的ValueTask能减少内存分配,特别适用于缓存检查等同步完成场景。其核心优势在于:同步结果时直接返回值(避免Task分配),异步操作时转换为Task处理。典型应用包括缓存优化、I/O操作和资源池管理。高级用法涉及手动实现ValueTask源和使用IValueTaskSource接口。ValueTask通过区分同步/异步路径显著提升性能,但需注意其单次消费限制和正确使用模式。
2025-11-30 09:31:29
380
原创 C#中OrderByDescending 是LINQ扩展方法之一
C#中的OrderByDescending是LINQ提供的降序排序方法,支持对数值、字符串和自定义对象进行排序。它支持基本语法和带比较器的重载,可结合ThenBy实现多条件排序。该方法采用延迟执行,时间复杂度为O(n log n),排序稳定。适用于数据报表、排行榜等场景,需注意空值处理、性能和文化敏感性。与OrderBy(升序)和ThenByDescending(次要降序条件)配合使用,能高效完成复杂排序需求。
2025-11-30 09:30:44
278
原创 C#中OrderByDescending 是LINQ扩展方法之一
C#中的OrderByDescending是LINQ提供的降序排序方法,支持对数值、字符串和自定义对象进行排序。它支持基本语法和带比较器的重载,可结合ThenBy实现多条件排序。该方法采用延迟执行,时间复杂度为O(n log n),排序稳定。适用于数据报表、排行榜等场景,需注意空值处理、性能和文化敏感性。与OrderBy(升序)和ThenByDescending(次要降序条件)配合使用,能高效完成复杂排序需求。
2025-11-30 08:37:54
305
原创 Visual Studio 2022 引用不见了 , 怎么办?
VS引用数量消失的解决方法:打开选项设置,搜索"codelen",进入CodeLens选项并勾选"启用CodeLens"功能即可恢复显示引用数量。操作简单,只需几步就能解决引用消失的问题。
2025-11-29 17:19:14
161
原创 C# 正则表达式完全指南
本文介绍了C#中正则表达式的主要应用场景和实现方法。主要内容包括: 正则表达式在C#中的六大用途:数据验证、文本搜索、文本替换、字符串分割、数据提取和文本分析,并提供了各类应用场景的示例说明。 三种让用户自定义维护正则表达式的方法: 配置文件方案:通过JSON配置文件存储正则模式 数据库存储方案:使用数据库表存储和管理正则规则 用户界面配置方案:提供交互式界面供用户添加和测试正则表达式 完整实战示例代码:展示了如何创建可配置的验证器,添加用户自定义规则,并进行数据验证和提取测试。 文章提供了详细的代码实现,
2025-11-27 21:46:17
425
原创 C# - Task 是什么?想象一下你在餐厅点餐
摘要:本文通过餐厅点餐的比喻,形象解释了C#中Task和异步编程的核心概念。Task相当于取餐号,代表一个正在进行或即将完成的操作,而非结果本身。Task.CompletedTask是已完成的空任务,用于无需实际异步操作但需返回Task的情况。文章对比了await(非阻塞)与.Wait()/.Result(阻塞)的区别,强调应优先使用async/await模式。最后提供了常见Task操作的对照表,帮助开发者理解异步编程的最佳实践。掌握这些概念对编写高效、响应式的C#程序至关重要。
2025-11-27 19:50:19
827
原创 C# 中 SQL Server 数据库调优指南(小白友好版)
C# SQL Server数据库调优摘要(150字) 本文介绍了C#中SQL Server数据库调优的基础方法。调优旨在提升数据库查询性能,解决常见的性能问题。通过对比反面示例,展示了N+1查询问题和SQL注入风险。提供了三个关键优化技巧:1) 使用参数化查询防止注入并提升性能;2) 通过JOIN一次性获取数据,避免循环查询;3) 合理配置连接池参数。代码示例演示了如何将低效的多次查询转换为高效的单个查询,以及如何正确管理数据库连接。这些方法能显著提高C#应用程序与SQL Server交互的性能表现。
2025-11-27 16:09:04
563
原创 在C#中,`StringContent` 是 `HttpContent` 的一个派生类
C#中的StringContent类用于HTTP请求中发送字符串数据,支持多种编码和媒体类型。摘要如下: 基本用法:可直接创建StringContent实例发送字符串数据 构造函数:支持指定编码(如UTF8)和媒体类型(如application/json) 常见应用:发送JSON/XML/表单等数据,支持添加自定义请求头 实际示例:展示如何发送JSON和XML数据到API端点 高级功能:处理特殊字符、流式大数据及与其他HttpContent类型比较 StringContent简化了HTTP请求中字符串数据的
2025-11-27 16:05:54
421
原创 C# - 直接使用 new HttpClient() 和使用 HttpClientFactory 的区别
摘要:C#中使用HttpClientFactory相比直接new HttpClient()具有显著优势。HttpClientFactory通过共享连接池解决端口耗尽问题,支持DNS更新和连接复用,提供集中配置管理,并内置弹性处理功能。最佳实践包括避免在using语句中创建HttpClient、使用类型化客户端、结合Polly策略实现重试机制,以及通过依赖注入获取HttpClient。这些改进使HttpClientFactory成为现代.NET应用中处理HTTP请求的推荐方案,有效提升了性能、可靠性和可维护性
2025-11-27 16:04:37
712
原创 C# 中的**中介模式**
摘要: 中介模式通过引入中介对象简化对象间复杂交互,降低耦合度。以租房为例,租客和房东通过中介沟通,避免直接依赖。代码演示了聊天室场景:用户通过聊天室中介发送消息,无需知道其他用户存在。该模式优势包括减少依赖、集中控制、易于扩展等,适用于聊天系统、交通调度等需要协调多对象交互的场景。核心思想是将网状通信转为星型结构,通过中介统一管理交互逻辑。
2025-11-25 13:29:23
23
原创 C# 中的**享元工厂**模式
C#享元模式通过共享对象减少内存占用,其核心是将对象分为可共享的内在状态(如字符、字体)和不可共享的外在状态(如位置、颜色)。示例代码展示了享元工厂的实现:使用字典缓存对象、双重检查锁保证线程安全、通过唯一键管理共享对象。测试显示处理28字符文档仅创建13个对象,内存节省53.6%,有效验证了享元模式在重复对象场景下的性能优势。
2025-11-25 13:21:14
365
原创 C# 中的 `Hashtable`
摘要:C#中的Hashtable是.NET Framework的非泛型键值对集合,基于哈希算法实现高效数据检索。它通过GetHashCode()计算键的哈希码定位存储位置,使用拉链法或开放地址法解决哈希冲突。主要特性包括键唯一性、键不可为null、值可为null、无序存储等。虽然Hashtable支持线程安全,但在现代开发中更推荐使用泛型的Dictionary<TKey,TValue>,后者具有类型安全、性能更好等优势。Hashtable适用于遗留代码维护,新项目应优先选择泛型字典。
2025-11-25 12:37:00
109
原创 [特殊字符] 迪米特法则(Law of Demeter)超详细讲解
摘要:迪米特法则(Law of Demeter)详解 迪米特法则强调对象间应保持最小了解,只与直接"朋友"通信,降低耦合度。朋友包括:当前对象、方法参数、成员变量及其集合元素、创建的对象。违反该法则会导致代码高度耦合,如Cashier直接访问Customer.Wallet.Money。改造后应通过中间层封装,如让Customer提供Pay()方法。实际应用如部门结构中,ReportGenerator不应直接访问多层对象,而应通过Company提供的聚合方法获取数据。该法则能提高代码复用性
2025-11-22 23:19:09
59
原创 [特殊字符] 原型模式超详细讲解
摘要:原型模式详解 原型模式是一种通过克隆现有对象来创建新对象的设计模式,避免了重复执行复杂的初始化过程。核心实现包括: 定义原型接口(ICloneable) 实现浅拷贝(MemberwiseClone)和深拷贝 浅拷贝仅复制值类型,引用类型仍共享同一对象 深拷贝会递归复制所有引用类型字段,创建完全独立的新对象 典型应用场景: 创建复杂对象成本较高时 需要保持对象状态一致性时 对象包含大量共享配置时 优势:提高性能,简化对象创建过程,支持运行时动态添加/删除对象。
2025-11-22 21:09:28
90
原创 [特殊字符] 代理模式超详细讲解 ——.NET
代理模式摘要 代理模式是一种结构型设计模式,通过创建一个"中介"对象来控制对真实对象的访问。核心思想是为对象提供一个代理,以控制对它的访问。代理模式包含三个关键角色:抽象主题(定义接口)、真实主题(实际业务对象)和代理(控制访问的中介)。代理模式主要应用于以下场景: 虚拟代理 - 延迟创建开销大的对象(如图片懒加载) 保护代理 - 控制访问权限(如文件权限管理) 缓存代理 - 存储常用结果提高性能(如网络请求缓存) 典型应用包括数据库访问代理、网络请求代理等,通过在代理中添加额外功能(如
2025-11-22 14:03:29
307
原创 依赖倒置原则(DIP)Dependency Inversion Principle
依赖倒置原则(DIP)通过抽象解耦模块关系,实现松耦合代码。高层模块(如订单服务)包含核心业务逻辑,低层模块(如数据库操作)处理具体实现。错误示例展示直接依赖导致紧耦合、难以测试和扩展的问题。正确方案通过接口(IOrderRepository、INotificationService)分离抽象与实现,允许灵活切换底层技术(SQL Server/MySQL,SMTP/SendGrid)。采用依赖注入方式,高层模块仅依赖接口而非具体类,提高可维护性和可测试性,同时符合开闭原则。这种设计使系统更灵活,业务逻辑与技
2025-11-21 23:07:41
183
原创 C#中这个核心且强大的概念——多态
可扩展性:如果要新增一个Hexagon(六边形)类,只需让它继承Shape并重写Draw()和方法。主循环的代码一行都不用改!这符合“开闭原则”(对扩展开放,对修改关闭)。可替换性:子类对象可以无缝替换父类对象。接口统一:为不同的类提供了统一的接口(例如Draw方法),使得代码更易于理解和维护。你不需要写一堆这样冗长且难以维护的代码。解耦:调用代码只依赖于抽象的基类Shape,而不依赖于具体的CircleRectangle等实现类,降低了代码的耦合度。virtual:在基类中声明一个方法可以被重写。
2025-11-21 22:40:25
78
原创 CommunityToolkit.Mvvm(又称MVVM Toolkit) 与 MvvmLight 的核心区别
摘要:CommunityToolkit.Mvvm是微软官方推出的现代化MVVM框架,作为MvvmLight的继任者,具有平台无关、轻量模块化和高性能等特点。其核心优势包括革命性的源生成器技术,大幅减少样板代码;创新的命令系统;以及完整的MVVM组件套件,支持异步操作和消息传递。相比MvvmLight,它由微软持续维护更新,采用更现代的API设计,特别适合WPF等.NET应用开发。通过示例代码展示了其简洁的ViewModel实现方式,包括属性、命令和消息系统的使用,显著提升开发效率和代码可维护性。
2025-11-20 19:21:54
295
原创 dotnet 命令详细列表
摘要:本文详细整理了常用的dotnet命令,分为项目生命周期、包管理、测试、工具诊断等类别,以表格形式展示命令语法和常用参数。包括new创建项目、restore还原依赖、build编译、run运行等核心命令,以及add/remove package管理NuGet包、test执行单元测试等实用功能。最后提供典型开发工作流和多项目解决方案的完整使用示例,涵盖从项目创建到发布部署的全流程,是.NET开发者必备的快捷参考指南。
2025-11-17 08:41:42
282
原创 CRUD 操作详解
CRUD是数据操作的四大基础功能,包括创建(Create)、读取(Read)、更新(Update)和删除(Delete)。本文详细解析了CRUD的具体含义和在Excel操作中的实际体现,通过代码示例演示了学生管理系统和商品库存系统中的CRUD应用。文章还阐述了CRUD的重要性:它是数据库操作的基础、API设计的核心和业务逻辑的骨架,并与HTTP方法对应。最后提供了"增删改查"的简单记忆口诀和学习建议。掌握CRUD是每个程序员必备的基础技能,它是数据全生命周期管理的核心概念。
2025-11-10 11:36:25
461
原创 .NET Core WebAPI 中 HTTP 请求方法详解:从新手到精通
本文详细介绍了.NET Core WebAPI中常用的HTTP请求方法及其使用场景。主要内容包括:GET方法用于安全获取资源;POST方法用于创建新资源;PUT方法用于完整更新资源;PATCH方法用于部分更新资源;DELETE方法用于删除资源。文章通过实际的.NET Core代码示例展示了每种方法的具体实现方式,并比较了它们的特点和适用场景,如GET的幂等性和安全性,POST的非幂等性等。此外还简要提到了HEAD等其他HTTP方法。
2025-11-06 20:44:20
639
原创 C# 中 Entity Framework (EF) 和 EF Core 里的 `AsNoTracking` 方法
摘要: C# 中的 AsNoTracking 方法是 Entity Framework 和 EF Core 中提升性能的关键特性,它通过禁用变更追踪机制减少内存开销并加快查询速度。默认情况下,EF 会追踪实体修改以自动生成更新语句,而 AsNoTracking 则适用于只读场景(如数据展示),使实体处于分离状态,不记录变更。若需更新无追踪实体,需手动附加并标记状态。最佳实践包括:只读操作必用 AsNoTracking,更新操作使用默认追踪,或全局配置只读 DbContext。合理使用可显著优化应用性能。
2025-11-04 15:35:46
993
原创 C# event 等 关键字详解
C#中的event关键字用于实现发布-订阅模式,允许类发布通知而其他类订阅接收。本文通过两个示例展示了事件的使用:1) 简单闹钟系统演示了基本事件定义、订阅和触发机制;2) 游戏角色系统展示了更复杂场景,包括自定义事件参数类。关键点包括:使用event声明事件,+=/-=操作符订阅/取消订阅,?.Invoke()安全触发事件,以及通过派生EventArgs创建自定义事件参数类。事件机制使对象间通信更灵活松耦合。
2025-11-02 12:45:52
429
原创 C#网络编程完全指南:从Socket到TCP/UDP实战应用
TCP vs UDP 全面对比:用生活化的例子彻底讲明白!作为刚入门的程序员,理解TCP和UDP的区别非常重要。让我用最通俗易懂的方式给你讲解!核心区别:一句话总结TCP像打电话,UDP像发短信
2025-11-01 20:50:59
894
1
原创 C# DefaultIfEmpty 完全指南:优雅处理空集合的利器
C# DefaultIfEmpty方法完全指南摘要 DefaultIfEmpty是LINQ中的实用方法,用于处理空集合场景。当源集合为空时,它会返回包含单个默认元素的序列(默认值为类型默认值或指定值)。主要特点和用途包括: 核心功能对比: 非空集合:保持原样 空集合:提供默认值(类型默认值或自定义值) 典型应用场景: 实现LEFT JOIN查询(保证左表记录不丢失) 避免空集合导致的异常 为报表等场景提供友好的默认显示 使用要点: 支持值类型和引用类型(引用类型默认返回null) 可与SelectMany配
2025-10-29 19:11:42
822
原创 C# SelectMany 完全指南:从入门到精通
C# SelectMany 方法摘要 SelectMany 是 LINQ 中处理嵌套集合的强大方法,能够将多层集合"拍平"为单层集合。与 Select 方法不同,SelectMany 会消除集合的嵌套层次。 基本语法: IEnumerable SelectMany( IEnumerable source, Func> selector) 典型应用场景: 展开学生与课程关系(一对多) EF Core 中的联表查询(部门与员工) 优势: 简化嵌套集合的处理 减少代码中的嵌套循环 在数据库查询
2025-10-29 18:48:58
1024
原创 C# Entity Framework Core 中的 Include 和 ThenInclude 详解
今天我要分享 Entity Framework Core 中两个非常重要的方法:`Include` 和 `ThenInclude`
2025-10-29 17:59:54
1139
原创 SQL Server 联查大扫除:INNER/LEFT/RIGHT/FULL JOIN 全解析,手把手教你 EF Core 配置!
本文以校园小卖部数据库为例,通俗讲解SQL中四种JOIN查询的区别与应用场景: INNER JOIN:只返回两表匹配的数据(如查询有订单的学生信息) LEFT JOIN:保留左表所有记录,右表无匹配则显示NULL(如查询所有学生及其订单) RIGHT JOIN:保留右表所有记录,左表无匹配则显示NULL(如查询所有订单及对应学生) FULL JOIN:返回两表所有记录,无匹配部分显示NULL 文章还介绍了如何在Entity Framework Core中配置实体关系实现这些查询,并提供了清晰的使用场景建议。
2025-10-23 10:45:50
487
原创 Navicat - 连接 mysql 、 sqlserver 数据库 步骤与问题解决
Navicat - 连接 mysql 、 sqlserver 数据库 步骤与问题解决
2025-10-23 08:48:22
1206
原创 MahApps.Metro WPF 开发使用过程中遇到的问题 - 未能加载文件或程序集“Microsoft.Xaml.Behaviors,
FileNotFoundException: 未能加载文件或程序集“Microsoft.Xaml.Behaviors, Version=1.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a”或它的某一个依赖项。系统找不到指定的文件。System.Windows.Markup.XamlParseException:““对类型“gTools.ViewTests.MainWindow”的构造函数执行符合指定的绑定约束的调用时引发了异常。”,行号为“8
2025-10-22 12:20:22
763
原创 Python 切片的核心概念
Python切片操作[:]的核心作用是创建序列的浅拷贝,而非直接引用原序列。其语法[start:stop:step]默认参数为[0:len(sequence):1],能完整复制列表。在编译器开发等场景中,使用[:]可确保原始数据(如token列表)不被意外修改,保证数据安全。例如,tokens_for_parsing=original_tokens[:]会创建一个独立副本,对副本的修改不会影响原数据。相比直接赋值,[:]是处理数据时保持原始数据完整性的关键操作。
2025-10-14 18:38:08
385
原创 C++ 中 `main` 函数 的 `return 0;`
return 0;在C++的main函数中表示程序成功执行完毕,是向操作系统返回的退出状态码。0代表成功,非零值通常表示不同类型的错误。现代C++可用EXIT_SUCCESS和EXIT_FAILURE宏提高可读性。这个机制允许其他程序检查执行结果,是系统间协作的基础。在命令行中,Linux/macOS用echo $?、Windows用echo %ERRORLEVEL%查看返回值。
2025-10-13 07:58:25
474
原创 梳理 int 、字节、位数以及它们在不同系统环境下的关系
不同编程环境中int类型的大小并非由操作系统位数决定,而是取决于编译器规范。在.NET平台中,int始终是4字节(32位),而long是8字节(64位)。C/C++的int在主流64位系统上通常保持4字节,仅指针变为8字节。保持int32位主要是为了兼容性和内存效率。开发时应根据实际需求选择int或long类型,避免混淆。
2025-10-13 07:56:49
831
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅