.NET编程周记第3期-2020年1月19日
整理了2020年1月19日这周阅读的几篇有趣的和.NET开发相关的文章。在这里和大家分享。
0x00 Introducing Nullable Reference Types in C#
- 如标题所示,本文介绍了在C# 8之后引入的可空引用类型。
- 在本文的开头,介绍了空引用的起源以及Tony Hoare的“十亿美元的错误”,这是一段有趣的历史背景介绍。
- 介绍了在处理空引用时存在的问题,以及如何在C#8中解决这些问题的方法,即他们添加了可空引用类型来表达引用可能为空的意图。
https://devblogs.microsoft.com/dotnet/nullable-reference-types-in-csharp/
0x01 A look at the internals of ‘boxing’ in the CLR
- 如果你想知道CLR中的装箱实现,你只需要阅读这篇很有帮助的文章!
- 本文首先介绍CLR规范中的装箱定义。然后讨论与CLR中的装箱/拆箱相关的il操作码和jit代码。相关操作会直接连接到对应的CLR代码。
- 在本文的结尾,有一些有用的链接,例如CLR代码中与装箱/拆箱相关的注释,StackOverflow上的相关问题等等。
https://mattwarren.org/2017/08/02/A-look-at-the-internals-of-boxing-in-the-CLR/
0x02 Structuring Unit Tests
- 本文已有些过时,但是本文的内容仍然非常有启发性。
- 本文介绍的测试结构在是对每个要被测试的类中都有一个测试类来对应,有趣的是针对每个要被测试的方法也要有一个测试类来对应。你可以在NuGetGallery这个项目的代码库中找到一些示例。
https://haacked.com/archive/2012/01/02/structuring-unit-tests.aspx/
0x03 The Book of the Runtime
- 《运行时之书》是一组文档,描述了CLR和BCL中的组件。它们旨在更多地关注CLR的体系结构。
- 有一些有趣的主题,例如CLR的垃圾回收设计,类型系统等。
https://github.com/dotnet/runtime/blob/master/docs/design/coreclr/botr/README.md
0x04 Hidden Features of C#?
- 一个来自Stack Overflow被查看了685k次的问题。 原始的问题已经有些过时了。但是有下面的回答包含了很多关于C#的隐藏功能或者是技巧。
- 可以找到许多C#技巧。
https://stackoverflow.com/questions/9033/hidden-features-of-c?page=1&tab=votes#tab-top
0x05 Web Scraping with C#
- 这篇文章总结了很多有关使用C#进行网络抓取的文章。
- 可以在Github上找到一些有用的项目,例如AngleSharp。
https://www.dotnetswede.com/web-scraping-with-csharp/
欢迎大家关注我的公众号"慕容的游戏编程":chenjd01