摘要: 简介 内核态,用户态,线程,进程,协程基本概念不再赘述。 原生线程和用户线程 原生线程 在内核态中创建的线程,只服务于内核态 用户线程 由User Application创建的线程,该线程会在内核态与用户态中间来回穿梭 比如Throw Exception,就会由CLR 线程触发,从用户态切换到内核态 阅读全文
posted @ 2024-11-22 14:02 叫我安不理 阅读(1445) 评论(7) 推荐(14)
摘要: 简介 烂大街的资料不再赘述,简单来说就是给代码看的注释 Attribute的使用场景 Attribute不仅仅局限于C#中,在整个.NET框架中都提供了非常大的拓展点,任何地方都有Attribute的影子 编译器层 比如 Obsolete,Conditional C#层 GET,POST,Max,R 阅读全文
posted @ 2024-11-19 16:37 叫我安不理 阅读(2081) 评论(1) 推荐(11)
摘要: 简介 反射,反射,程序员的快乐。 前期绑定与后期绑定 在.NET中,前期绑定(Early Binding)是指在编译时就确定了对象的类型和方法,而后期绑定(Late Binding)或动态绑定是在运行时确定对象的类型和方法。 前置知识:C#类型系统结构 C#作为C++++ ,在类型系统上沿用C++的 阅读全文
posted @ 2024-11-15 09:29 叫我安不理 阅读(2845) 评论(4) 推荐(31)
摘要: 简介 .NET通过委托来提供回调函数机制,与C/C++不同的是,委托确保回调是类型安全,且允许多播委托。并支持调用静态/实例方法。 简单来说,C++的函数指针有如下功能限制,委托作为C#中的上位替代,能弥补函数指针的不足。 类型不安全 函数指针可以指向一个方法定义完全不同的函数。在编译期间不检查正确 阅读全文
posted @ 2024-11-13 10:18 叫我安不理 阅读(1570) 评论(0) 推荐(16)
摘要: 简介 泛型参考资料烂大街,基本资料不再赘述,比如泛型接口/委托/方法的使用,逆变与协变。 泛型好处有如下几点 代码重用 算法重用,只需要预先定义好算法,排序,搜索,交换,比较等。任何类型都可以用同一套逻辑 类型安全 编译器保证不会将int传给string 简单清晰 减少了类型转换代码 性能更强 减少 阅读全文
posted @ 2024-11-07 14:57 叫我安不理 阅读(3551) 评论(2) 推荐(34)
摘要: 简介 https://www.cnblogs.com/lmy5215006/p/18494483 在研究.NET String底层结构时,我所观察到的情况与《.NET Core底层入门》,《.NET内存管理宝典》书中描述不符。故多研究了一下。发现.NET托管堆的结构也是越来越多,越来越高性能。 // 阅读全文
posted @ 2024-10-30 16:48 叫我安不理 阅读(2773) 评论(6) 推荐(42)
摘要: 简介 string作为一种特殊的引用类型,是迄今为止.NET程序中使用最多的类型。其本质就是unicode格式的char[] 分配在托管堆上 因此在分析dump的时候,大量的string,char[]是很常见的现象 String的内存布局 https://github.com/dotnet/runt 阅读全文
posted @ 2024-10-25 15:50 叫我安不理 阅读(1361) 评论(4) 推荐(23)
摘要: 简介 上文所说的总线,相对于CPU自身而言,属于外部总线。这些外部总线将CPU与外部芯片串联起来。 其内部也有类似结构(运算器/控制器/寄存器/内部总线),组成一个完整的CPU。 运算器进行计算处理 寄存器进行数据存储 控制器控制内部芯片 内部总线串联内部芯片 不同CPU,寄存器的数量与结构不尽相同 阅读全文
posted @ 2024-10-22 10:43 叫我安不理 阅读(327) 评论(0) 推荐(0)
摘要: 指令和数据 指令和数据是应用上的概念,在内存或磁盘上,两者没有任何区别,都是二进制信息。 如同围棋中的棋子,在棋盒里没有任何区别,在对弈的时候才有不同的意义 存储单元 计算机最小信息单位为Bit,也就是一个二进制位。8个bit组成一个Byte.通常称之为字节 1B=8Bit,1KB=1024B,1M 阅读全文
posted @ 2024-10-22 10:41 叫我安不理 阅读(250) 评论(0) 推荐(1)
摘要: 接上文 https://www.cnblogs.com/lmy5215006/p/18456380 评论区精彩,大佬深入讨论了C#的Finalize最佳实践,感觉有必要整理下来,拓展阅读,开拓眼界。 GC类中几个非常重要的API GC.ReRegisterForFinalize 顾名思义,再次注册一 阅读全文
posted @ 2024-10-15 13:55 叫我安不理 阅读(188) 评论(0) 推荐(1)