随笔分类 - DotNet/Csharp
摘要:一 背景 相比.Net Framework , .NET Core的配置系统 ,有一些明显的优点 ,如: 1 支持更丰富的配置源 2 读取配置时, 可以用相同的方式读取, 并且非常方便 3 修改配置后,不用重启应用 本期对配置相关的源码简单梳理一下。 只说主逻辑 ,并且从用的角度说起 ,逐步深入。
阅读全文
摘要:1. 泛型的意义 类型安全(更好的编译时检查),性能增强(避免装箱和拆箱),代码复用(减少了功能相似的代码) 2. 种类: 泛型类型(包括类,结构,接口,委托,数组) 泛型方法。 枚举、属性、构造函数、字段 这些没有对应的泛型 3. 约束 : where T: class (必须是引用类型) whe
阅读全文
摘要:反射 定义 :查看和操作元数据的操作 ; 原理: 利用元数据(包括) ,获取类型的完整描述' 特点: 可以获取类型所有的成员和方法,无论他们是否是private,甚至还可以修改值,调用私有静态构造函数。 动态加载(也叫晚期绑定); 使用套路 class Program { static void M
阅读全文
摘要:动态类型是从C#4才开始有的,随着DLR一起引人的。 大部分时候的行为如同object类型,对应的IL代码也是object类型。 它的特点是编译时会忽略在dynamic上进行的操作,如调用方法,读写属性等; 运行时才会转成确定的对象;还可以和Python等动态语言交互。这就是它的优势; dynami
阅读全文
摘要:委托 委托的作用: 对签名相同的不同函数进行抽象,对它们进行封装从而达到代码复用的目的 异步调用和回调 如何使用,正常的使用可以分为三步: 定义委托 delegate int GetLengthDel(string input) 创建委托的实例并指向合适的方法 GetLengthDel del=Ge
阅读全文
摘要:包括2种大的类型: 引用类型和值类型, 放一张图说明继承层次: 一 值类型: 内置的值类型,如下 用户自定义值类型就是用户定义的枚举或者结构类型。 可空类型(Nullable<T>)属于 struct 类型,也是值类型 引用类型保存在内存堆中 ,值类型保存在内存栈中(少数情况下不是,如当值类型是作为
阅读全文
摘要:初衷: 搞了几年.Net ,一直没在博客园做过系统的总结,并打算按照下面的结构来写 语言层面 类型系统 [查看]: https://www.cnblogs.com/francisXu/p/13602717.html 委托/事件 [查看]: https://www.cnblogs.com/franci
阅读全文
摘要:总的逻辑 继承 IConfigurationSource 这个接口的子类是配置源 ,其中的build方法,创建并返回对应的ConfigurationProvider。 继承 IConfigurationProvider 这个接口的子类是负责加载/返回配置的,其中的Load方法负责真正的加载配置,Tr
阅读全文
摘要:1. clone 源码 下载新的 git clone --recursive https://github.com/dotnet/aspnetcore 如果之前clone过,但是没有使用 --recursive参数 可以使用下面命令 git submodule update --init --rec
阅读全文
摘要:获取Unix时间最高效的方法 /// <summary> /// 扩展方法, 本地时间转Unix时间; (如 本地时间 "2020-01-01 20:20:10" 转换unix后等于 1577881210) /// </summary> /// <param name="time">本地时间</pa
阅读全文
摘要:protected virtual async Task ScheduleJob(CancellationToken cancellationToken) { var next = _expression.GetNextOccurrence(DateTimeOffset.Now, _timeZone
阅读全文
摘要:转自:https://www.cnblogs.com/wangbaicheng1477865665/p/OutIn.html 首先声明,本文写的有点粗糙,只让你了解什么是协变和逆变,没有深入研究,根据这些年的工作经验,发现我们在开发过程中,很少会自己去写逆变和协变,因为自从net 4.0 (Fram
阅读全文
摘要:代码演示C#各版本新功能 转载自 https://www.cnblogs.com/sdflysha/p/20200228-csharp-history-code-demo.html C#各版本新功能其实都能在官网搜到,但很少有人整理在一起,并通过非常简短的代码将每个新特性演示出来。 代码演示C#各版
阅读全文