C#

11 篇文章
C#
EasyChat 一款专为无障碍沟通打造的强大翻译软件[开源]

EasyChat 一款专为无障碍沟通打造的强大翻译软件[开源]

EasyChat 是一款基于 .NET 10 和 Avalonia 构建的现代化翻译工具,旨在解决高频跨语言沟通的难题,提供无缝流畅的交流体验。它通过集成 PaddleOCR 实现截图 OCR 翻译,支持在聊天窗口中自动翻译输入内容,并具备实时语音识别与翻译功能,可满足游戏玩家、影音爱好者及跨境交流等场景的需求。同时,软件支持多种翻译引擎,包括 AI 大模型与传统机器翻译,并计划引入语音合成功能以进一步提升交流便利性。

C# 命名规范

C# 命名规范

作者针对C#开发者对命名规范不清晰的问题,系统梳理了相关规范。大驼峰(PascalCase)适用于类、接口(以I开头)、方法、属性、事件、常量等;小驼峰(camelCase)用于方法参数和局部变量;私有字段则常用下划线前缀的小驼峰(_camelCase)。C#特有规范包括:接口必须以I开头,Attribute类需以Attribute结尾,异步方法以Async结尾,扩展方法所在类以Extensions结尾,泛型类型参数用T前缀,事件处理方法命名格式为On+EventName,命名空间采用PascalCase并使用反向域名。作者还通过速查表总结了各类命名方式的用途,帮助开发者快速掌握规范要点。

C# 反射 浅入浅出

C# 反射 浅入浅出

作者介绍了C#的反射(Reflection),这是一种运行时动态检查和操作类型、成员及属性的API,位于System.Reflection命名空间。反射支持动态对象创建、方法调用、属性访问和特性读取,广泛应用于插件开发、依赖注入、ORM框架和元编程工具。关键API包括Type用于类型信息,GetMethod和GetProperty用于获取方法和属性,以及GetCustomAttributes用于处理自定义特性。作者强调,直接调用方法可能影响性能,建议使用委托或表达式树优化。反射增强了程序的灵活性和可扩展性,但需谨慎使用以避免性能瓶颈。

C# 之委托与事件

C# 之委托与事件

作者在文章中详细阐述了委托和事件的概念及其在编程中的应用。委托是一种类型安全的函数指针,封装方法引用,支持动态调用、回调机制和多路广播,确保编译时类型安全。事件基于委托实现发布/订阅模式,解耦发布者和订阅者,通过+=/-=运算符管理订阅。内置委托类型如Action、Func和Predicate简化开发,示例场景包括文件下载进度、按钮点击事件、自定义排序策略和定时任务调度。与其他语言对比,Python需手动维护回调列表,Java依赖接口和监听器,而C#的委托和事件提供更简洁高效的实现。

C# 语法糖与特性介绍

C# 语法糖与特性介绍

作者在文章中系统介绍了C#编程语言的核心特性,涵盖从C# 3.0到C# 11.0的关键功能,包括隐式类型推断、目标类型、对象初始化器、匿名类型等,这些特性通过简化变量声明和初始化提升代码可读性。文章详细探讨了索引与范围、本地函数、Lambda表达式(涉及委托结合、LINQ用法及表达式树),以及字符串处理如插值和逐字字符串。扩展方法允许在不修改原类型的情况下添加功能,而模式匹配提供了强大的类型检查和值匹配能力,涵盖基础、过滤组合及结构化模式。异步编程利用async/await实现同步风格的异步操作,ref/out/in关键字支持不同参数传递方式,params关键字则简化可变数量参数处理。作者通过代码示例展示了这些特性的实际应用,旨在帮助开发者高效编写C#代码。

C# 语法糖之 LINQ

C# 语法糖之 LINQ

作者阐述了LINQ(Language-Integrated Query),一种将查询功能直接集成到C#语言的技术,使查询成为一流语言构造,支持类型检查和IntelliSense,统一了不同数据源的查询方式。基本语法包括查询表达式和方法链,作者偏好后者。执行机制分为延迟执行(在枚举时执行)和即时执行(如聚合操作)。操作符涵盖过滤、投影、排序、分组、聚合等分类。提供程序如LINQ to Entities实现IQueryProvider接口,负责表达式树翻译到目标数据源。性能优化建议包括缓存结果、合理分批加载、最小化投影字段、表达式复用和谨慎使用PLINQ。

[开源] 服务器智能风扇调速工具

[开源] 服务器智能风扇调速工具

作者开发的 FanX 是一款基于 .NET 8 和 Blazor 的服务器风扇控制与监控平台,专为戴尔服务器设计(支持 BMC 设备也可使用)。该平台通过实时监控设备运行状态,并根据自定义或智能规则动态调节风扇转速,在确保系统温度和功率安全的同时有效降低噪音。核心功能包括实时监控功率、风扇转速、CPU温度及主板温度,支持多级温度-转速映射曲线的智能控制,提供企业微信机器人、Webhook等多种通知渠道。作者还设计了灵活的规则配置系统,允许基于不同温度条件为特定风扇设置精确转速,相比服务器自带自动调速更为精细。项目支持 Docker 部署,提供中英文界面和深色/浅色主题切换,满足不同用户需求。

C# Lottie 动画控件库

C# Lottie 动画控件库

作者开发了一个支持WPF和Avalonia的.NET平台Lottie动画库并已开源。该库基于SkiaSharp实现,旨在解决.NET桌面应用中Lottie动画支持有限的问题。提供完整的Lottie JSON格式支持,包含播放控制、逐帧操作、PNG导出、外部控制模式等核心功能,并支持多种文件格式。通过硬件加速渲染、自动内存管理和可配置帧率实现性能优化。库适合Loading动画、UI交互反馈、数据可视化等场景,为.NET开发者提供了功能完善的Lottie动画解决方案。

[开源] Tgs(电报表情包) / Lottie 格式转换工具客户端

[开源] Tgs(电报表情包) / Lottie 格式转换工具客户端

作者开发了一款名为LottieViewConvert的跨平台客户端工具,用于高效转换Lottie动画和Telegram贴纸文件。该工具支持多种输出格式,包括GIF、WebP、APNG、MP4、MKV、AVIF和WebM,具备批量处理、自定义输出设置、并发任务加速等强大功能。用户可直接解析和下载Telegram贴纸包,调整播放速度、帧率、分辨率和转换质量。工具采用现代化界面设计,依赖项自动安装,简化了设置流程。支持Windows、macOS和Linux系统,解决了此前Telegram机器人转换效率低、文件大小限制等问题,为用户提供更高效、更灵活的动画文件转换解决方案。

[C#/Python] AoB Scan(内存扫描)方式获取微信小程序Token/Cookies

[C#/Python] AoB Scan(内存扫描)方式获取微信小程序Token/Cookies

该文章针对微信小程序升级至x64后,原有AoB Scan(32位)获取Token失效的问题,提出新的解决方案。通过mitmproxy抓包分析定位小程序鉴权信息(如JWT固定字段),结合Cheat Engine扫描内存区域确定关键字段位置,再利用C#或Python编程实现自动化获取。具体步骤包括设置代理抓包、解码分析协议头、CE搜索固定字符串、编写程序扫描进程内存。需注意C#需选x64平台并管理员运行,Python同样需管理员权限。文章提供了工具下载及源代码,强调仅供技术研究,实际应用需根据具体场景调整扫描内容。