随笔分类 - C#
摘要:最近在维护公司旧项目,偶然发现使用Fleck实现的WebSocket主动推送功能,(由于前端页面关闭时WebSocket Server中执行了多次OnClose事件回调并且打印了大量的关闭日志,),后来我特地看了源码,这里做一些分享 github: https://github.com/statia
阅读全文
摘要:众所周知,Grpc很好用,但每次都需要手动编写 *.proto 文件,protobuf-net.Grpc个人感觉最大的优势是不用写*.proto 文件,相关教程如下: https://learn.microsoft.com/zh-cn/aspnet/core/grpc/code-first?view
阅读全文
摘要:最近在看项目,看到别人使用Rougamo框架,好奇花了点时间仔细研究了,在这里记录一下。 0. 静态编织 Aop 首先,我们先了解什么是Aop? Aop 是指面向切面编程 (Aspect Oriented Programming),而所谓的切面,可以认为是具体拦截的某个业务点。 我们常用的aop框架
阅读全文
摘要:Python代码如下 import pandas as pd import numpy as np import matplotlib.pyplot as plt from scipy import signal def lowpass_Butterworth(sig,fs,filter_cutof
阅读全文
摘要:Python代码如下 import pandas as pd import numpy as np import matplotlib.pyplot as plt # 读取数据 data = pd.read_csv('clean_data_row.csv') # 进行傅里叶变换 fft_result
阅读全文
摘要:Python代码如下 import pandas as pd # 读取数据 data = pd.read_csv('data_row.csv') # 检查异常值 def detect_outliers(data): outliers = [] for col in data.columns: q1
阅读全文
摘要:最近时间在整SM2算法,在网上看到不少代码,基本都是使用BouncyCastle库,现在这个版本算比较好的拿来分享给大家。 首先引入包 Portable.BouncyCastle 完整代码见Gitee:https://gitee.com/Karl_Albright/CryptoHelper/blob
阅读全文
摘要:前阵子在对接银行接口,对方给出的加密方式是SM2,在网上找了不少教程,都是使用Portable.BouncyCastle实现的,功能实现后发现对方给出的密钥格式是PKCS8,下面代码记录一下PKCS8密钥如何使用 各种常用的加密方法例子总结 https://gitee.com/xuzhongye/C
阅读全文
摘要:怎么使用模块1. 建立模块直接的依赖关系,可以通过DependsOnAttribute特性来确定依赖关系2. 先配置模块,实现为模块填充数据和功能设置。3. 使用模块提供的功能接口 怎么定义模块1. 每个模块都应该定义一个模块类并继承AbpModule抽象了类2. 通过DependsOnAttrib
阅读全文
摘要:1. 线程池基础。 创建和销毁线程是一个昂贵的操作,要耗费大量时间。太多的线程会浪费内存资源。由于操作系统必须调度可运行的线程并执行上下文切换,所以大多的线程还对性能不利。为了改善这个情况,CLR包含了代码来管理它自己的线程池(thread pool)。线程池是你的应用程序能使用的线程集合。每CLR
阅读全文
摘要:1. Microsoft 设计这个OS内核时,决定在一个进程中运行应用程序的每个实例。进程实际是应用程序的实例要使用的资源的集合。每个进程都被赋予了一个虚拟地址空间,确保在一个进程中使用的代码和数据无法由另一个进程访问。 2. 如果发生死循环会停止响应,所以有了线程,线程的职责是对CPU进行虚拟化。
阅读全文
摘要:Redis 中的数据类型 Redis 中,常用的数据类型有以下几种: String 字符串 Hash 散列/哈希 List 列表 Set 集合 Sorted Set 有序集合 所有数据都是 key-value 形式存储,每个数据都有唯一的 key,以上数据类型是 value。 删除一个数据的命令:D
阅读全文
摘要:在开发中,有时候生成验证码的场景目前还是存在的,本篇演示不依赖第三方组件,生成随机验证码图片。 先添加验证码接口 public interface ICaptcha { /// <summary> /// 生成随机验证码 /// </summary> /// <param name="codeLen
阅读全文
摘要:1. 异常是指成员没有完成它的名称所宣称的行动,异常类继承System.Exception。 2. .Net Framework 异常处理机制是用Microsoft windows提供的结构化异常处理(Structured Exception Handing, SEH)机制构建的。 3. AppDo
阅读全文
摘要:1. 访问一个资源所需的步骤 1). 调用IL指令newobj,为代表资源的类型分配内存(一般使用C# new 操作符来完成)。 2). 初始化内存,设置资源的初始状态并使资源可用。类型的实例构造器负责设置初始状态。 3). 访问类型的成员来使用资源(有必要可以重复)。 4). 摧毁资源的状态以进行
阅读全文
摘要:1. 字符串一经创建,便不能以任何方式修改,只能修改引用。 2. ToLowerInvariant() 和 ToUpperInvariant() 以忽略语言文化的方式将字符串转换为小写或大写形式。性能比ToLower() 和 ToUpper()好。而且Microsoft对执行大写比较的代码进行了优化
阅读全文
摘要:1. 值类型的变量永远不会为null,所有需要使用System.Nullable<T> 2. 操作数是null,结构是null;==、!=操作数都为null,则返回true;<、>、<=、>= 任何一个操作数为null,则返回false。 3. 操作可空类型的速度慢于非可空类型速度。 4. ?? 不
阅读全文
摘要:1. 特性继承自System.Attribute,能作用于TypeDef(类、结构、枚举、接口和委托),MethodDef(含构造器),ParamDef,FieldDef,PropertyDef,EventDef,AssemblyDef,ModuleDef。 2. AttributeUsageAtt
阅读全文
摘要:1. 委托是方法的包装器,使方法能通过包装器来间接回调。在一个类型中通过委托来调用另一个类型的私有成员,只要委托对象是具有足够安全性/可访问性的代码创建,便没有问题。 2. 协变性:方法能返回从委托的返回类型派生的一个类型。逆变性:方法获取的参数可以是委托的参数类型的基类。 3. 委托实际上是一个类
阅读全文
摘要:1. 数组隐式继承 System.Array,所以数组是引用类型。变量包含的是对数组的引用,而不是包含数据本身的元素。 2. 数组协变性。将数组从一种类型转换为另一种类型。 string[] sa = new string[100]; object[] oa = sa; oa[5] = "Jeff"
阅读全文