随笔分类 -  C#

推荐书籍:《深入理解C#》、《CLR via C#》、《Effective C#》、《C#多线程编程实战》
摘要:前言 一个老掉牙的话题,园子里的相关优秀文章已经有很多了,我写这篇文章完全是想以自己的思维方式来谈一谈自己的理解。(PS:文中涉及到了大量反编译源码,需要静下心来细细品味) 从简单开始 为了更容易理解这个问题,我们举一个简单的例子:用异步的方式在控制台上分两步输出“Hello World!”,我这边 阅读全文
posted @ 2021-01-21 09:15 xiaoxiaotank 阅读(4768) 评论(21) 推荐(32) 编辑
摘要:原文:https://devblogs.microsoft.com/pfxteam/executioncontext-vs-synchronizationcontext/ 作者:Stephen 翻译:xiaoxiaotank 不来深入了解一下? 为了更好的理解本文内容,强烈建议先看一下理解C#中的C 阅读全文
posted @ 2020-09-15 09:03 xiaoxiaotank 阅读(3463) 评论(7) 推荐(18) 编辑
摘要:原文:https://devblogs.microsoft.com/dotnet/configureawait-faq/ 作者:Stephen 翻译:xiaoxiaotank 静下心来,你一定会有收获。 七年前(原文发布于2019年).NET的编程语言和框架库添加了async/await语法糖。自那 阅读全文
posted @ 2020-08-20 09:18 xiaoxiaotank 阅读(32731) 评论(36) 推荐(89) 编辑
摘要:原文:https://devblogs.microsoft.com/dotnet/understanding-the-whys-whats-and-whens-of-valuetask/ 作者:Stephen 翻译:xiaoxiaotank 备注:本文要求读者对Task有一定的了解,文章文字描述较多 阅读全文
posted @ 2020-06-29 10:55 xiaoxiaotank 阅读(7299) 评论(11) 推荐(36) 编辑
摘要:从C# 4.0开始,泛型接口和泛型委托都支持协变和逆变,由于历史原因,数组也支持协变。 里氏替换原则:任何基类可以出现的地方,子类一定可以出现。 协变(out) 协变:即自然的变化,遵循里氏替换原则,表现在代码上则是任何基类都可以被其子类赋值,如Animal = Dog、Animal = Cat 使 阅读全文
posted @ 2020-05-18 10:04 xiaoxiaotank 阅读(1398) 评论(0) 推荐(6) 编辑
摘要:去年在CSDN上写的,现在把它搬过来。 一、引发问题 用了那么久的 ref 和 out ,你真的了解它们是如何使得实参与形参的值保持同步的吗? 二、研究前提 要研究这个问题,前提是要了解 C# 中方法间参数是如何传递的: 1.CLR支持两种类型:值类型和引用类型。 a. 值类型:值一般保存在线程栈上 阅读全文
posted @ 2019-08-07 20:43 xiaoxiaotank 阅读(4215) 评论(0) 推荐(1) 编辑
摘要:一、基础 首先,为了深入了解垃圾回收(GC),我们要了解一些基础知识: CLR:Common Language Runtime,即公共语言运行时,是一个可由多种面向CLR的编程语言使用的“运行时”,包括内存管理、程序集加载、安全性、异常处理和线程同步等核心功能。 托管进程中的两种内存堆: 托管堆:C 阅读全文
posted @ 2019-07-16 11:48 xiaoxiaotank 阅读(3715) 评论(7) 推荐(9) 编辑
摘要:这里直接给出C 类成员一般初始化顺序: 1. 子类静态字段 1. 子类静态构造 1. 子类实例字段 1. 父类静态字段 1. 父类静态构造 1. 父类实例字段 1. 父类实例构造 1. 子类实例构造 为什么说是“一般”初始化顺序呢?因为根据类结构的不同,类成员的初始化顺序并不是一成不变的。但是这个顺 阅读全文
posted @ 2019-07-09 10:43 xiaoxiaotank 阅读(4212) 评论(0) 推荐(3) 编辑

点击右上角即可分享
微信分享提示