随笔分类 -  C#|.NET

摘要:遇到一个场景,新旧系统使用维护类似的表结构和规范,需要将新的数据迁移到旧的系统中,当时采取的方案就是在新系统开发,将数据生成新增/更新的sql语句,在导入到旧库中,所以简单做了一个符合当时场景的动态生成SQL语句的实现。 主要考虑到问题: 1.解决无自增外键生成INSERT SQL脚本和UPDATE 阅读全文
posted @ 2022-02-16 20:33 JN-SHao 阅读(563) 评论(0) 推荐(0) 编辑
摘要:反射通过操作元数据,一般使用场景:一个是晚期绑定,CLR运行时动态加载程序集,建立类型对象等操作(如加载插件);另一个是提供通用的模型,进行通用的功能操作,一般和泛型一起用(如ORM)。 反射方法调用效率慢,是因为反射当于黑盒操作,看一下MethodInfo的Invoke()方法的参数就知道了,参数 阅读全文
posted @ 2022-01-26 00:32 JN-SHao 阅读(124) 评论(0) 推荐(0) 编辑
摘要:有时会遇到json数据是动态的,没有固定的格式和字段,没办法反序列化固定model进行解析,只能用dynamic来接收。如何解析呢?想到的办法是转化成键值对,用Dictionary<string, object> 数据结构来储存,后续获取匹配等处理效率也很高。 首先用到Newtonsoft.Json 阅读全文
posted @ 2022-01-25 23:07 JN-SHao 阅读(819) 评论(0) 推荐(0) 编辑
摘要:对上传zip压缩文本文件解析,引用第三方包SharpZipLib,写了一个静态扩展类。主要是对Stream流的基本操作方便下次翻看,代码如下: 1 using ICSharpCode.SharpZipLib.Zip; 2 using Microsoft.AspNetCore.Http; 3 usin 阅读全文
posted @ 2022-01-25 22:15 JN-SHao 阅读(76) 评论(0) 推荐(0) 编辑
摘要:一、 堆的介绍: 堆是用来排序的,通常是一个可以被看做一棵树的数组对象。堆满足已下特性: 1. 堆中某个节点的值总是不大于或不小于其父节点的值 任意节点的值小于(或大于)它的所有后裔,所以最小元(或最大元)在堆的根节点上(堆序性)。堆有大根堆和小根堆,将根节点最大的堆叫做最大堆或大根堆,根节点最小的 阅读全文
posted @ 2021-02-03 19:59 JN-SHao 阅读(847) 评论(0) 推荐(1) 编辑
摘要:记一下学习单例模式的笔记: 单例就是要保证该类仅有一个实例。实现完全封闭的单例(外部不能new)其实就要两点要求: 全局访问:需要一个该类型的全局静态变量,每次获取实例时都要判断它是否null,不存在new,存在通过一个方法直接返回该值获取实例来保证对象唯一; 实例化控制:new实例不能外部new、 阅读全文
posted @ 2021-01-23 20:20 JN-SHao 阅读(150) 评论(0) 推荐(0) 编辑
摘要:总结一下使用类继承和多态时,实例化顺序以及方法继承重写中new,virtual、abstract、override的用法和规则: 继承关系:实例化对象时,作用类型范围在最初基类到具体实例对象的类之间(中间包括父类子类,成员访问权限:private、protected、public): 1、 子类实例 阅读全文
posted @ 2021-01-23 16:33 JN-SHao 阅读(261) 评论(0) 推荐(0) 编辑
摘要:在C#中所有的数据结构类型都实现IEnumerable或IEnumerable<T>接口(实现迭代器模式),可以实现对集合遍历(集合元素顺序访问)。换句话可以这么说,只要实现上面这两个接口的类都是集合类,都能够进行遍历。工作中用过很多扩展方法对泛型集合(IEnumerable<T>)元素进行处理,一 阅读全文
posted @ 2020-11-15 12:27 JN-SHao 阅读(197) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示