- 博客(10)
- 收藏
- 关注
原创 C#Encoding
简单来说,编码就是字符(如 ‘A’, ‘中’, ‘😊’)与字节序列(如 0x41, 0xE4 0xB8 0xAD, 0xF0 0x9F 0x98 0x8A)之间的转换规则。明确指定编码:在读写文件、网络通信时,永远不要依赖系统默认编码。统一使用UTF-8:在新项目中,尽量统一使用UTF-8编码。注意性能:频繁的编码解码会影响性能,在大数据量时要考虑缓存。变长编码:英文字符1字节,中文通常3字节,表情符号4字节。处理异常:编码转换可能抛出异常,要做好错误处理。编码:将字符串转换为字节数组。
2025-11-17 16:04:49
299
原创 C#第三方库
Microsoft.Extensions.DependencyInjection:性能极高,内置于 .NET Core,解析单例约 50ms,适合简单场景,但功能有限。解析单例约 1010ms,复杂对象约 8470ms。SimpleInjector:性能极高,解析单例约 50ms,支持高级功能,适合高性能 Web 应用。性能较低,解析单例约 1500ms,启动时间较长,不适合高并发或现代 .NET 应用。性能极高,解析单例约 63ms,Prism 7+ 默认容器,适合复杂模块化应用。
2025-11-14 16:34:21
336
原创 WPF侧边栏导航菜单(使用MaterialDesign样式)
需要添加两个Nuget库:MaterialDesignThemes和MaterialDesignColors,上图的效果是使用该控件库实现的,非常强大。自适应内容:列宽自动调整以适应其内部子控件的所需宽度,宽度由该列中最“宽”的子控件(例如最长的文本、尺寸最大的按钮)决定。按比例填充:占据所有剩余的可用空间,无论窗口如何缩放,它都会填满第一列分配后剩下的所有空间。大致是使用ScrollViewer+Menu实现的。第一列 (Width=“auto”)第二列(Width=“*”)
2025-11-14 14:16:46
252
转载 QT vs2019操作QXlsx(忘防自用)
拷贝 D:\xlsx_tool\QtXlsxWriter-master\build-qtxlsx-Desktop_Qt_5_12_11_MSVC2015_64bit-Debug\mkspecs\modules中的qt_lib_xlsx.pri文件到C:\Qt\Qt5.12.11\5.12.11\msvc2015_64\mkspecs\modules中。的QtXlsx到C:\Qt\Qt5.12.11\5.12.11\msvc2015_64\include。一、解压QtXlsxWriter。
2025-11-13 10:53:16
22
原创 Castle.core AOP
本文演示了如何使用Castle DynamicProxy实现方法调用的动态拦截。通过创建ProxyGenerator实例并注册自定义拦截器MyInterceptor,为MySqlDBHelper类生成代理对象。拦截器重写了PreProceed、PerformProceed和PostProceed方法,分别在方法调用前、执行中和返回后输出日志信息。特别地,PreProceed方法会解析方法参数,包括处理数组类型的参数值转换。示例展示了如何调用代理对象的方法,并打印参数信息、调用顺序等调试信息,实现了对方法调用
2025-11-11 15:16:50
134
原创 winform中消息机制使用CommunityToolkit.Mvvm
**注销*** WeakReferenceMessenger.Default.Unregister<UserLoggedInMessage>(this);WeakReferenceMessenger.Default.Send(new UserLoggedInMessage("张三"));发现其中的消息机制很好用,想着在winform中测试一下,果然也能用。// 处理接收到的消息,例如更新界面。// 例如,定义一个用户登录状态改变的消息。// 在登录成功的逻辑中。***发送消息***
2025-11-11 13:50:57
378
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅