12 2020 档案
摘要:Task异步任务里面如果发生了未经处理的异常并不会终止程序的正常运行,如果是Thread创建的线程里发生了异常会终止程序的运行(控制台项目程序测试得出的结论), 由于async异步方法的返回值只能为void、Task和Task<T>所以也可以认为async异步方法产生的异常也不会导致程序的终止 对于
阅读全文
摘要:“协变”是指能够使用与原始指定的派生类型相比,派生程度更大的类型。 “逆变”则是指能够使用派生程度更小的类型。 直白的理解: “协变”->”和谐的变”->”很自然的变化”->string->object :协变。 “逆变”->”逆常的变”->”不正常的变化”->object->string 逆变。
阅读全文
摘要:错误截图: 解决方法: 1 找到启动项目的配置文件,web项目为Web.config,控制台项目为app.config 我这里的启动项目为单元测试项目,配置文件为app.config,原始内容如下: 我现在dll的版本为12.0.0.0 修改appconfig如下: 如果配置文件没有该项配置,则只需
阅读全文
摘要:日志级别在枚举类 Microsoft.Extensions.Logging.LogLevel 定义好了 日志只会记录比当前配置的日志级别同级或者更高的日志级别的日志,不会记录比配置的日志级别低的日志,即如果配置文件设置了日志级别为“Information”则比“information”日志级别低的(
阅读全文
摘要:1 析构函数只能由运行时(CLR)中的垃圾回收器(GC)调用来进行资源回收,Dispose方法只能由类的使用者调用 在C#中,凡是继承了IDisposable接口的类,都可以使用using语句,从而在超出作用域后,让系统自动调用Dispose()方法。 一个资源安全的类,都实现了IDisposabl
阅读全文
摘要:个人理解: Unicode:是字符集,为每一个「字符」分配一个唯一的 ID(学名为码位 / 码点 / Code Point) UTF-8:是对Unicode字符集的编码规则的具体实现,是一套以 8 位为一个编码单位的可变长编码。会将一个码位编码为 1 到 4 个字节: 即UTF-8具体编码规则: 1
阅读全文
摘要:Misfire:当一个作业在配置的规定时间没有运行(比如线程池里面没有可用的线程、作业被暂停等)并且作业配置的应该运行时刻为A,当前时间为B,如果B与A的时间间隔超过misfireThreshold配置的值(默认为60秒)则作业会被调度程序认为Misfire。 当作业misfire后,调度程序会根据
阅读全文
摘要:析构函数是在垃圾回收时调用的 构造函数与析构函数的区别: 构造函数和析构函数是在类体中说明的两种特殊的成员函数。 构造方法是在创建类的对象实例时执行的,而析构方法则是在垃圾回收、释放资源时使用的。 析构函数的功能是用来释放一个对象的。在对象删除前,用它来做一些清理工作,它与构造函数的功能正好相反。
阅读全文
摘要:对称加密 加密和解密都使用同一个密钥 非对称加密 加密和解密使用不同的密钥 如:A与B使用非对称加密方式通信,A使用B的公钥对明文加密后发送给B,B使用自己的私钥解密得到明文信息;B用A的公钥对明文加密然后把密文发送给A,A接收到后使用自己的私钥进行解密得到B发送的信息 https在协商会话密钥时使
阅读全文
摘要:redis 远程连接的conf文件配置1 注释绑定本地ip# bind 127.0.0.1 注:在vi中,使用 /bind 查找bind相关内容,接着输入 n 查找下一个,按 Esc键切换命令模式 2 设置后台守护进程daemonize yes 3 打开保护模式protected-mode yes
阅读全文
摘要:1 在官网 https://aspnetboilerplate.com/Templates 选择下载的模板 2 我这里下载的是 ASP.NET MVC5 下的 Multi Page Web Application 3 解压缩后,使用vs打开解决方案文件 4 把Tools文件夹下的 *.Migrato
阅读全文
摘要:第一范式(1NF) 第二范式(2NF) 第二范式是指每个表必须有一个(有且仅有一个)数据项作为关键字或主键(primary key),其他数据项与关键字或者主键一一对应,即其他数据项完全依赖于关键字或主键 第三范式(3NF) 第三范式要求一个数据库表中不包含已在其它表中已包含的非主关键字信息,也可以
阅读全文
摘要:扩展方法必须在非泛型静态类中定义 对类定义的扩展方法,使用被扩展类的实例来使用扩展方法 对接口定义的扩展方法,使用实现该接口的类的实例来使用扩展方法 不能对静态类定义扩展方法。
阅读全文
摘要:并发 当有多个线程在操作时,如果系统只有一个CPU,则它根本不可能真正同时运行一个以上的线程,它只能把CPU运行时间划分成若干个时间段,再将时间段分配给各个线程执行,在一个时间段的线程代码运行时,其它线程处于挂起状。.这种方式我们称之为并发(Concurrent) 并行 当系统有一个以上CPU时,则
阅读全文
摘要:对于使用 new Task创建的任务,需要手动调用start方法任务才会开始运行;但是使用async/await异步里的任务不需要手动启动运行 实例 static void Main(string[] args) { Task<string> task = new Task<string>(() =
阅读全文
摘要:事务的ACID属性 原子性(atomicity):原子性意味着不可分割,一个事务里的操作要么全部提交成功,要么全部失败回滚,不能只执行其中的一部分操作。 一致性(consistency):一个事务在执行之前和执行之后,系统会从一个正确的状态迁移到另一个正确的状态,执行前和执行后数据库的状态都满足预定
阅读全文
摘要:从备份配置文件启动redisredis-server /myredis/redis.conf 查看redis服务是否在运行ps -ef | grep redis 进入redis客户端redis-cli测试命令:ping 服务器正常返回pong 在redis-cli下关闭redis服务:shutdow
阅读全文
摘要:C# 代码实现冒泡排序 #region 冒泡排序 /// <summary> /// 冒泡排序 /// </summary> /// <param name="arr">待排序的数组</param> /// <param name="isAsc">是否升序排序,默认为升序排序</param> pub
阅读全文
摘要:C#实现选择排序代码如下 #region 选择排序 /// <summary> /// 选择排序 /// </summary> /// <param name="arr">待排序的数组</param> /// <param name="isAsc">是否升序排序,默认为升序排序</param> pu
阅读全文
摘要:创建测试表 if object_id('tempdb..#Score','U') is not null drop table tempdb.#Score go create table #Score(name nvarchar(10),course nvarchar(20),score decim
阅读全文
摘要:编辑项目 Property 下的 launchSettings.json文件 运行结果: 备注:如果生成的项目里面没有 launchSettings.json 文件,则读取 startup.cs 的默认路由 app.UseEndpoints(endpoints => { endpoints.MapC
阅读全文
摘要:控制器特性改写如下: [ApiController] [Route("[controller]/[action]")] 示例: 请求Get方法的url为
阅读全文
摘要:以项目启动,而不是从具体浏览器启动 运行效果:
阅读全文
摘要:GO /* 字符串分割函数 使用示例 select * from dbo.Func_StrSplit('x1,x2,x3,',',') */ create FUNCTION [dbo].[Func_StrSplit]( @Str nvarchar (max), -- 待处理字符串 @Split nv
阅读全文
摘要:sqlserver字符串的字符位置编号是从1开始的,与C#字符串中字符位置编号从0开始有区别 比如在sqlserver中字符串 'abcd' 位置编号依次为1,2,3,4 比如字符'c'的位置编号为3 left和right left:从指定字符串左边第一个位置开始取指定数量的字符 right:从指定
阅读全文
摘要:创建测试表 if OBJECT_ID('tempdb..#test') is not null drop table #test create table dbo.#test ( seqval int not null constraint pk_#seqval primary key ); ins
阅读全文