摘要:多年不写 Winform 了,突然要做一个 winform 项目,各种不顺手,各种百度。 DataGridView 数据绑定的一些细节问题,记录备查。 数据绑定 BindingList<EmployeeVO> dataSource; private async void FrmEmployeeInf 阅读全文
posted @ 2020-08-16 18:30 丹枫无迹 阅读(100) 评论(0) 推荐(0) 编辑
摘要:如果问面向对象的三大特性是什么,多数人都能回答出来:封装、继承、多态。 继承 作为三大特性之一,近来却越来越不推荐使用,更有极端的语言,直接语法中就不支持继承,例如 Go。这又是为什么呢? 为什么不推荐使用继承? 假设我们要设计一个关于鸟的类。 我们将“鸟类”定义为一个抽象类 AbstractBir 阅读全文
posted @ 2020-06-15 09:47 丹枫无迹 阅读(477) 评论(2) 推荐(1) 编辑
摘要:本文基于 AutoMapper 9.0.0 AutoMapper 是一个对象-对象映射器,可以将一个对象映射到另一个对象。 官网地址:http://automapper.org/ 官方文档:https://docs.automapper.org/en/latest/ 1 入门例子 public cl 阅读全文
posted @ 2020-06-12 10:38 丹枫无迹 阅读(4529) 评论(3) 推荐(10) 编辑
摘要:函数签名 假设有一个函数 f,输入一个 int 值,返回一个 string 值,在 C# 中,该函数可以表示为: Func<int, string> 我们可以使用箭头(→)符号来表示: f : int → string 箭头符号是函数式编程社区的标准函数符号,与语言无关。 当没有输入或没有输出(vo 阅读全文
posted @ 2020-06-02 12:33 丹枫无迹 阅读(178) 评论(0) 推荐(0) 编辑
摘要:以前需要反编译的时候,一直都是用的神器 Reflector。但毕竟还是有点不方便,因为要从 VS 切换到另一个工具。而且,Reflector 现在收费了。 然而现在才发现,原来 VS 已经自带反编译功能了,不愧是宇宙第一 IDE。 工具 → 选项 → 文本编辑器 → c 高级 → 启用导航到反编译源 阅读全文
posted @ 2020-05-23 13:00 丹枫无迹 阅读(906) 评论(4) 推荐(2) 编辑
摘要:现在网上的 CsvHelper 教程都比较旧,本文基于 CsvHelper 最新版本 15.0.5 阅读全文
posted @ 2020-05-20 12:14 丹枫无迹 阅读(1084) 评论(2) 推荐(6) 编辑
摘要:时间格式我使用的一直都是 yyyy-MM-dd HH:mm:ss,然后某天,我改成了 yyyy/MM/dd HH:mm:ss,然后神奇的问题就来了。 阅读全文
posted @ 2020-05-19 13:15 丹枫无迹 阅读(225) 评论(0) 推荐(1) 编辑
摘要:@[toc] 开发 web api 的时候,写文档是个痛苦的事情,而没有文档别人就不知道怎么调用,所以又不得不写。 swagger 可以自动生成接口文档,并测试接口,极大的解放了程序员的生产力。 1 安装 通过 NuGet 安装 Swashbuckle。 安装完成后,App_Start 文件夹下会多 阅读全文
posted @ 2020-04-07 12:50 丹枫无迹 阅读(3175) 评论(9) 推荐(4) 编辑
摘要:有时我们临时需要一个 JSON 字符串,直接拼接肯定不是好方法,但又懒得去定义一个类,这是用 就会非常的方便。 但是在 中添加数组却经常被坑。 输出结果: 非常正确,但如果把 换成 就不对了。 这么写会报: Could not determine JSON object type for type 阅读全文
posted @ 2020-04-03 13:04 丹枫无迹 阅读(304) 评论(0) 推荐(0) 编辑
摘要:生成随机数,第一反应肯定是 类,然而, 生成的随机数被称为伪随机数,因为用 生成随机数时,需要用到一个“种子”,而 使用相同的种子,一定会产生相同序列的数字 。 如果在创建 时没有提供种子,那么就将用当前系统时间来生成种子。 由于系统时钟只有有限的粒度,因此两个创建时间非常相近(一般在 10 毫秒之 阅读全文
posted @ 2020-04-02 11:02 丹枫无迹 阅读(491) 评论(0) 推荐(0) 编辑
摘要:假设一个密码要求长度大于 8 位,至少包含一个数字、一个小写字母、一个大写字母,如果用一条正则验证? 阅读全文
posted @ 2020-02-12 12:20 丹枫无迹 阅读(574) 评论(0) 推荐(4) 编辑
摘要:我们都知道,文件有不同的编码,例如我们常用的中文编码有:UTF8、GK2312 等。 Windows 操作系统中,新建的文件会在起始部分加入几个字符的前缀,来识别编码。 例如,新建文本文件,写入单词 ,另存为 UTF8。 占 5 个字节,但文本大小却是 8 个字节。(win7 系统下还是这样的,wi 阅读全文
posted @ 2020-02-10 10:19 丹枫无迹 阅读(291) 评论(0) 推荐(0) 编辑
摘要:本文讨论了 System.Timers.Timer 和 System.Threading.Timer 的保活机制引起的内存泄露问题 阅读全文
posted @ 2020-02-06 10:28 丹枫无迹 阅读(627) 评论(2) 推荐(3) 编辑
摘要:NuGet 是 .NET 平台下的一个免费、开源的包管理开发工具。 修改全局包管理目录 通过 NuGet 安装包时,NuGet 先将包下载至一个统一的目录,默认路径是: 下载的包多了以后,会导致 C 盘空间被大量占用。我们可以通过修改配置将其指定到自定义的目录下。 搜索 文件,默认位置是: ,在根节 阅读全文
posted @ 2019-11-20 10:33 丹枫无迹 阅读(1899) 评论(1) 推荐(1) 编辑
摘要:新手在安装 MySQL 时还是有许多坑的 阅读全文
posted @ 2019-11-19 10:52 丹枫无迹 阅读(1372) 评论(0) 推荐(1) 编辑
摘要:[TOC] 1 实体类的 Json 序列化和反序列化 我们以如下的 类举例,其中包含了常用的数据类型: 创建一个 实例: 1.1 Json 序列化 返回不缩进的 Json 字符串 返回缩进的 Json 字符串 1.2 将不缩进的 JSON 字符串转成缩进形式 或者: 1.3 其他设置 返回: 1.4 阅读全文
posted @ 2019-10-12 10:51 丹枫无迹 阅读(3119) 评论(0) 推荐(0) 编辑
摘要:RESTful 是最流行的 API 设计规范,但是什么是 RESTful?表现层状态转移,这恐怕谁都看不懂。本文用最通俗的说法,讲明白什么是 RESTful。 阅读全文
posted @ 2019-09-26 10:33 丹枫无迹 阅读(818) 评论(2) 推荐(4) 编辑
摘要:详细介绍了 Protobuf 及其在 Windows 下的使用,并给出了 Python 及 C# 的使用示例。 阅读全文
posted @ 2019-09-10 10:22 丹枫无迹 阅读(633) 评论(0) 推荐(0) 编辑
摘要:详细介绍 VS Code 中配置 Python 的运行环境及常用的插件。 阅读全文
posted @ 2019-09-06 10:03 丹枫无迹 阅读(2110) 评论(1) 推荐(0) 编辑
摘要:正则其实很简单,本文以 Python 语言为基础,全面介绍了 Python 中正则的使用及各种坑。 阅读全文
posted @ 2019-08-16 12:03 丹枫无迹 阅读(844) 评论(1) 推荐(3) 编辑