
CLR Via C# 读书笔记
文章平均质量分 59
CLR Via C# 读书笔记
Ha啤酒来大杯的
不会就问我,问了也不一定会
展开
-
CLR Via C# 读书笔记-第26、27章(线程基础、计算限制的异步操作)
第 26 章 线程基础为什么支持线程进程是什么? 进程实际上是应用程序实例要使用的资源集合,每个进程被赋予一个虚拟地址空间,来确保一个进程的代码和数据无法被其他进程直接访问,并且进程无法访问OS代码和数据,但是如果只有一个CPU,执行死循环,虽然没法破坏数据,但是仍然会出现无法响应的情况。所以提出了线程,线程是对CPU的虚拟化线程的开销和一切虚拟化机制一样,线程需要时间上和空间上的消耗线程要素– 线程内核对象(thread kernel object) OS 为系统中创建的每个线程都分.原创 2022-02-12 16:58:04 · 303 阅读 · 0 评论 -
CLR Via C# 读书笔记-第24章(运行时序列化)
第 24 章 运行时序列化序列化是什么?对象转化为字节流的过程,字节流转化为对象叫反序列化应用程序状态可以很轻松保存在磁盘文件或数据库中,并在下次运行应用程序时恢复一组对象可以复制到系统粘贴板,并复制到同一个或其他应用程序中一组对象可以通过网络发送到另一台机器运行的进程中下面是简单的序列化和反序列化class MainClass{ public static void Main() { var objs = new List<string> {.原创 2022-02-11 14:33:21 · 629 阅读 · 0 评论 -
CLR Via C# 读书笔记-第23章(程序集加载和反射)
第 23 章 程序集加载和反射程序集的加载原创 2022-02-03 10:04:26 · 629 阅读 · 0 评论 -
CLR Via C# 读书笔记-第22章(CLR 寄宿和 AppDomain)
第 22 章 CLR 寄宿和 AppDomain原创 2022-01-28 15:42:28 · 258 阅读 · 0 评论 -
CLR Via C# 读书笔记-第21章(托管堆和垃圾回收)
第 21 章 托管堆和垃圾回收应用程序受进程虚拟地址空间影响、32位进程最多分配1.5G、64位进程最多分配8TBC# new一个对象,首先计算类型字段以及基类大小,然后还需要分配2个固定字段分别为类型对象指针、同步块索引32位进程以及64位进程分别会占用32位和64位引用计数法最大的问题就是循环引用问题引用跟踪法 首先跟踪法将只关心引用类型的变量称为根,GC时标记所有可达对象,如果一个对象已经被标记将不会被重复标记(这样解决了引用计数的循环引用问题)、然后进行压缩(也可以说是碎片化整理)使所有.原创 2022-01-24 20:18:42 · 460 阅读 · 0 评论 -
CLR Via C# 读书笔记-第5章 基元类型、引用类型、值类型
基元类型基元类型 编译器直接支持的数据类型 e.g. int byte等表达式中如果都是字面值,编译时就会完成表达式求值,从而提高性能引用类型和值类型非托管代码C/C++中定义类型后,使用该类型的代码决定在哪分配实例。而在托管代码中由定义类型的人员决定在哪分配实例。设计值类型应当考虑实参、返回值均会设计值类型字段拷贝,造成性能损失。将值类型变量复制给另一个值类型变量,将会逐字段复制CLR会控制类型字段的布局,引用类型默认StructLayoutAttribute.Auto,值类型默认.原创 2022-01-06 20:25:35 · 180 阅读 · 1 评论 -
CLR Via C# 读书笔记-第18、19章(定制特性、可空值类型)
第十八章 定制特性AttributeUsage中有3个字段– m_attributeTarget 特性应用的目标– AllowMultiple 对单个元素是否可以应用多次– Inherited 特性应用于基类时,是否同时应用于派生类如何检测特性的存在?– 首先来看System.Reflection.CustomAttributeExtensions类中定义的方法,里面其实就是3个方法IsDefined、GetCustomAttributes、GetCustomAttribute,其中如果只想.原创 2022-01-06 20:22:51 · 226 阅读 · 0 评论 -
CLR Via C# 读书笔记-第15章、16章、17章(枚举类型和位标志、数组、委托)
十五章原创 2022-01-04 21:00:32 · 274 阅读 · 0 评论 -
CLR Via C# 读书笔记-第14章(字符/字符串/文本处理)
十四章 字符、字符串、文本处理字符字符定义在System.Char中,16位Unicode,其中定义了常量public const Char MinValue = '\0'public const Char MaxValue = '\uffff'原创 2021-12-23 20:33:25 · 379 阅读 · 0 评论 -
CLR Via C# 读书笔记-第9、10、11、12、13章(参数、属性、事件、泛型、接口)
第九章 参数以传引用的方式想方法传递参数out和ref对于CLR没啥区别,生成的IL代码基本一样。而out和ref对于C#来说,out代表在传参数时,被调用的方法不指望你以及初始化好了,所以不会去读参数的值,最后必须向参数写入。而ref,调用者必须初始化好,被调用方法可以读或写。第十章 属性匿名类型和元组被创建出来,就不可以改变...原创 2021-12-15 09:44:42 · 182 阅读 · 0 评论 -
CLR Via C# 读书笔记-第6、7、8章(类型和成员基础、常量和字段、方法)
不显示 定义类型的public或private,会默认为internal成员访问性定义,规则C# → CLR, protected → Family、internal → Assembly、其他都差不多public → Public这样的原创 2021-12-06 12:42:15 · 375 阅读 · 0 评论 -
CLR Via C# 读书笔记-第4章 类型基础
new()一个类型的步骤计算类型及其基类所定义字段和开销成员(类型对象指针、同步块索引)的字节托管堆分配需要的字节初始化类型对象指针、同步块索引最后调用类型实例构造器,传递new的参数类型转换通过is进行类型判断、显示转换可以通过(TypeName)转换,但是一般使用as 可以提高性能命名空间和程序集...原创 2021-11-24 09:51:47 · 190 阅读 · 0 评论