📄🦌🙌🐟🏖️
卖烤肉
人生苦短,及时行乐。
C# 反射 浅入浅出

C# 反射 浅入浅出

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

浅谈电子邮件伪造

浅谈电子邮件伪造

作者探讨了电子邮件发信人伪造的技术原理与实现方法。文章指出,SMTP协议允许发信方任意声明发件人地址,这是伪造邮件的基础。为防范此类攻击,业界建立了SPF、DKIM和DMARC等认证机制,其中SPF记录通过域名白名单验证发件服务器IP。作者使用swaks工具进行测试,发现直接伪造有SPF记录的域名会被拒收,但通过代发机制可绕过验证,尽管邮件会显示"由xxx代发"。测试还揭示国内邮箱服务存在缺陷:QQ邮箱对无SPF记录的域名和子域名验证不严,网易邮箱甚至不校验SPF记录,仅显示伪造提示。作者建议使用Gmail或Proton Mail等更安全的邮箱服务。

OOP 设计模式之七大原则

OOP 设计模式之七大原则

作者系统阐述了面向对象编程的七大原则,包括SOLID(单一职责、开闭、里氏替换、接口隔离、依赖倒置)、组合/聚合复用和迪米特法则。这些原则强调职责分离、扩展性、接口设计、依赖抽象和最小化耦合,旨在提升代码的可维护性、可测试性和灵活性。作者通过C#示例展示了违反原则的常见错误,并指出正确实现应依赖接口、采用组合复用和限制对象交互范围。同时,作者提醒开发者需根据项目规模灵活应用原则,避免过度抽象导致代码冗余,确保设计平衡实用性与规范性。

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。

新增了一些评论区动态表情

新增了一些评论区动态表情

作者对表情包进行了全面优化,统一采用.avif格式,帧率均为60帧,分辨率从100x100提升至256x256,文件体积大幅下降约57%。动画表情在与文字并排时会缩小至64x64,单独发送则保持原尺寸。新增了QQ超级表情包、小怪兽、可爱蟑螂、小鳄鱼、可爱狗头、网红宠物、鱿鱼游戏、史迪奇、小丑9款表情包,同时保留了BLACKPINK、金克斯、小黄人、名人梗图、瑞克和莫蒂、派大星、小黄鸭等原有7款动画表情包。

导出QQ所有超级表情包(共144张)

导出QQ所有超级表情包(共144张)

作者发现QQ超级表情为Lottie动画格式,但腾讯未全部公开,需通过特定路径查找。初始在全局文件夹未果,最终在账号目录的D:\Tencent Files\QQ\账号\nt_qq\nt_data\Emoji\BaseEmojiSyastems\EmojiSystermResource\qlottie中定位到目标表情包。借助工具批量导出为.gif,提供下载链接及源文件,说明导出质量为70%、速度3.2x,需更高画质可自行使用工具处理。

Ubuntu 修改 DNS 服务器

Ubuntu 修改 DNS 服务器

Ubuntu 18.04起系统自动启动systemd-resolved服务,本地运行DNS解析器(监听127.0.0.53),并将/etc/resolv.conf指向其维护的stub-resolv.conf,导致直接修改重启后失效,因该文件由NetworkManager动态生成。可通过netplan解决:在网卡配置中设置dhcp4-overrides的use-dns为false禁用动态DNS获取,通过nameservers指定自定义DNS服务器(如1.1.1.1、8.8.8.8),保留DHCP功能。netplan将配置传递给底层网络服务,systemd-resolved动态读取并更新上游服务器,实现DNS修改生效。

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

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

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