- 博客(90)
- 收藏
- 关注

原创 策略模式(Strategy Pattern)+ 模板方法模式(Template Method Pattern)的组合使用
策略模式(Strategy Pattern):可替换的证书处理策略模板方法模式(Template Method Pattern):父类提供默认实现或结构,子类定制行为这是一种常见的组合设计,用于提供灵活可扩展的行为策略选择统一结构规范的场景。仅供学习参考,如有侵权联系我删除。
2025-07-23 16:52:28
355

原创 堆内存、栈内存、内存地址
对比项堆(Heap)栈(Stack)管理方式手动或自动(GC)自动释放存储内容引用类型对象、数组值类型变量、函数调用上下文分配速度慢快生命周期程序控制/GC回收方法调用期间内存大小较大较小值类型在栈,引用类型在堆(值在栈上,引用在堆上)(有些结构体情况略复杂,但大体如此)。仅供学习参考,如有侵权联系我删除。
2025-07-15 16:05:52
239

原创 C# 结构体 和 类 的区别
C#中结构体(struct)是值类型,赋值和传参时复制值本身。结构体适合表示小型简单数据对象(如坐标、颜色),存储在堆栈上,性能较好。与类不同,结构体不支持继承,默认构造函数不可自定义。结构体作为方法参数时传递副本,需使用ref修饰才能传引用修改原值。类(class)是引用类型,存储在堆上,支持继承和自定义构造函数。结构体适用于不需要继承的小型数据对象,类适合更复杂的对象建模。
2025-07-11 10:02:53
243

原创 Mark一个Json在线解析工具
https://www.x-json.cn/
2025-04-02 17:00:33
122
原创 Github结合Sonarcloud代码扫描
GitHub和Sonarcloud结合可以实现,效果如下,GitHub账号登录sonar,点击分析新项目-如果找不到想要分析的repo就点下面核对你的GitHub配置。做完这里面的两个步骤,1,添加secret 2,新建build.yml。然后下次再提交代码就自动触发扫描。点Create project,就会跳转到新建的Project页。保存后跳转回sonar就能看到新加的repo。验证登录后跳转到这一页。如有侵权联系我删除。点击这里可以添加新的仓储去扫描。继续勾选github。
2025-06-05 13:52:34
162
原创 C# 下 using 块的作用 + VS2022 下 using 语法糖怎样工作
using本质是语法糖,不能 F12 看到它本身的实现。它会在编译阶段转换为并调用Dispose()。你可以通过这种在线工具来看到编译器“反糖”的结果(即:C# 源代码编译后生成的 IL 或自动展开的样子)。
2025-04-22 17:02:50
317
原创 .NET仓储层在 using 块中创建 SqlSugarClient 的风险
情况建议做法想要返回不要在方法内部using释放连接想在方法里执行查询使用ToList()立即执行,返回结果想安全复用查询表达式由调用方提供,连接生命周期在外层控制仅供学习参考。
2025-04-22 16:53:19
532
原创 C#抽象类和虚方法的作用是什么?
不能直接实例化,只能被继承。用来定义一套基础框架和规范,强制子类必须实现某些方法(抽象方法)。可用来封装一些共通的逻辑,减少代码重复。表示这个方法可以被子类重写(override)。默认给了一套实现,你可以用,也可以替换掉。避免了子类必须每次都写重复代码(子类用基类实现就好)总结:抽象类 + 虚方法组合使用的好处是:提供一个统一的接口和逻辑框架允许子类在不破坏主结构的情况下实现个性化逻辑(比如加缓存、记录日志)✅ 示例代码:调用 🎯 实战目标构建一个 基于接口 + 抽象类 +
2025-04-22 14:26:21
583
原创 SQLSugar单列查询Select和条件查询Where的封装
基于泛型的selectExpression whereExpression orderbyExpression的lambda表达式封装
2025-04-02 17:12:41
663
原创 VUE3的持久化存储
Q2:authState(定义如下)这个变量是响应式的对象,登陆后存储user信息和登陆状态,但是在刷新页面后,信息丢失,如果用localstorge 涉及到解构,也会导致对象失去响应式。,因为 Vue 的响应式状态是存储在内存中的,一旦页面刷新或跳转到其他页面,JavaScript 代码会重新执行,所有在。Q:vue3响应式对象 在刷新页面或者redirect后,响应式变量的值会丢失吗?来管理全局状态,并支持持久化存储。A:是的,在 Vue 3 中,如果是全局状态管理,建议使用。
2025-03-20 09:49:05
553
原创 .NET下根据文件的哈希值筛选重复文件
先获取所有文件的大小,并按照大小group by,这样相同大小的文件就会在一组。文件大小不同一定不属于相同文件,文件大小相同有可能属于相同文件,也有可能是不同的文件刚好大小相等。红框和黄框内的虽然字节数是一样的,相同大小会group by到一组。针对每个大小组,计算组内每个文件的哈希值,把具有相同哈希值的文件存到 hashGroups 字典里。所以,一个 1GB 大小的文件,其哈希值的大小取决于选择的哈希算法,而不是文件自身的体积大小。文件哈希值的大小与文件本身的大小无关,而是由所使用的哈希算法决定。
2025-03-13 16:50:08
831
原创 vuejs相关链接和格式化插件推荐
右键选择Prettier作为格式化工具,el-tree组件可以分好多行显示,比vue - offical好用。
2025-03-07 11:27:34
258
原创 C# TryGetValue和TryParse结合out var用法
TryGetValue() 作为获取value的方法并且做判断条件 取到了返回true并且赋值给 workStudyCourseTypeName 否则返回false。需求:如果是属于dictionary那几种情况 则输出 Hello + Value。仅供学习参考,如有侵权联系我删除。
2024-04-09 10:07:02
1885
原创 如何在pgAdmin中用替换的值更新jsonb列?(二)
既存jsonb - text,取text - jsonb。那么当jsonb嵌套jsonb应该怎么替换呢?像这样,类型依然是jsonb,只不过嵌套一层,JsonData:"{}",这就不得不提一下这种数据结构是怎么来的。衍生的问题,既然可已嵌套Json,那么想不显示转义符的Json在pgAdmin中方便查阅又怎么做呢?再展开看下效果,可以看见第一步骤中的json已经变成text并且被加了转义符 \"知道了嵌套Json是怎么来的以后,想写替换语句就容易了。至此,文章开头提到的嵌套Json我们就拿到了。
2024-04-03 09:51:22
628
原创 git stash代码pop stash后误删找回
使用 git stash pop 其实并没有真正地将文件删掉的,而是删除引用而已,因此我们可以使用 git fsck 命令进行找回,搭配参数--unreachable,让 git-fsck 显示出所有不可访问的对象。第三步:在git bash下执行如上命令,会得到所有stash过的文件。会以单的文件的存储方式输出到git bash here的目录下。如题,git stash了代码,点了pop stash后,revert了改动。第四步:用vs code打开文件夹并搜索代码中关键字,定位到丢失的文件。
2024-03-28 17:10:35
1367
原创 如何在pgAdmin中用替换的值更新jsonb列?
我有一个名为files的PostgreSQL表,其中包括一个名为formats的jsonb表。对于每一行,我想更新,并用other-url替换some-url。
2024-02-23 17:13:15
698
原创 Visual Studio常用快捷键及调试操作
Ctrl+F10 运行到光标处 调试时候不用一行行按F10了Ctrl+M+M 折叠或展开当前方法Ctrl+M+O 折叠所有方法Ctrl+M+L 展开所有方法Ctrl+E+W 自动换行/取消自动换行Ctrl+U 选中文本转小写Ctrl+Shift+U 选中文本转大写Ctrl+Win+O 启动软键盘F9 光标行加断点Ctrl+Alt+B 打开断点窗口 或通过Debug -> Windows打开Call Stack 可以帮忙找到断点调用处补充:Ctrl+Shift+K 浏览器双开一个同样
2024-01-08 13:23:27
1527
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人