整理了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​github.com

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

.NET编程周记第3期-2020年1月19日的更多相关文章

  1. C#高级编程笔记 Day 7, 2016年9月 19日 (泛型)

    1.协变和抗变 泛型接口的协变 如果泛型类型用 out  关键字标注,泛型接口就是协变的.这也意味着返回类型只能是 T. 接口IIndex 与类型T 是协变的,并从一个制度索引器中返回这个类型. pu ...

  2. 一个由"2020年1月7日 京东出现的重大 Bug 漏洞"引起的思考...

    2020年1月7日,京东由于优惠券设置错误,导致大量产品以0元或者超低价成交,并且发货.网传小家电被薅24万件,损失损失金额高达7000多万.很多网友表示收到货了,在网上晒出到货截图.下面为购买截图: ...

  3. 2019年IntelliJ IDEA 最新注册码,亲测可用(截止到2020年3月11日)

    2019年IntelliJ IDEA 最新注册码(截止到2020年3月11日) 操作步骤: 第一步:  修改 hosts 文件 ~~~ 在hosts文件中,添加以下映射关系: 0.0.0.0 acco ...

  4. Webstorm 2019激活码(有效期至2020年6月5日)

    Webstorm 2019激活码(有效期至2020年6月5日):https://blog.csdn.net/lt326030434/article/details/90229298

  5. 从通达信导出文件获取A股所有股票代号名称(至2020年2月24日)

    下文是讲述如何从通达信的输出文件中获得股票信息,如果想用Java爬虫从网页爬取信息请参考:https://www.cnblogs.com/xiandedanteng/p/12808381.html 要 ...

  6. 2020年1月31日 安装Python的BeautifulSoap库记录

    C:\Users\ufo>pip install beautifulsoup4 Collecting beautifulsoup4 WARNING: Retrying (Retry(total= ...

  7. .NET Conf 2020大会将于2020年11月10日--- 11月12日举行 (UTC)时区

    .NET Conf 2020大会将于2020年11月10日--- 11月12日举行 (UTC)时区 开始时间 2020年11月10日 08:00 (PT) | 16:00 (UTC)| 24:00(北 ...

  8. C#高级编程笔记 Day 8, 2016年9月 28日 (数组)

    1.数组的初始化 声明了数组后,就必须为数组分配内存,以保存数组的所有元素.数组是引用类型,所以必须给它分配堆上的内存,为此,应使用 new 运算符,指定数组中元素的类型和数量来初始化数组的变量.若使 ...

  9. C#高级编程笔记 Day 6, 2016年9月 14日 (泛型)

    1.泛型类的功能:在创建泛型类时,还需要一些其他C#关键字.例如,不能把null赋予泛型类型.此时,可以使用default 关键字.如果泛型类型不需要Object类的功能,但需要调用泛型类上的某特定方 ...

随机推荐

  1. 用一篇文章了解ppi,dpr,物理像素,逻辑像素,以及二倍图

    这篇文章能让你了解到什么是分辨率.dpr.dip.ppi (dpi相当于ppi,dpi用点表示物理像素密度,ppi是逻辑像素密度) 首先从最简单的ppi开始: 一部手机,有大有小,怎么知道手机的大小用 ...

  2. 原生js实现响应式轮播图,支持电脑端点击切图,手机端滑动切图

    轮播图的实现原理并不难,但是步骤有些繁琐.最近练习了一个轮播图,大部分是跟着网上的教程写的,然后自己做了一点兼容ie8的修改,加了点击切换图片的特效和手机端的滑动特效,让这个轮播图可以在响应式的网站中 ...

  3. C# 在 构造函数添加 CallerMemberName 会怎样

    在 C# 中有一个特性 CallerMemberName 可以给方法知道调用这个方法的方法名,在 UWP 中用这个特性很多,特别是在使用 MVVM 绑定 如果在构造函数使用这个特性会发生什么? 构造函 ...

  4. Java语言中使用OpenMP

    从去年年中,开始学习Java,主要是维护公司用Java编写的服务器软件.目前,该服务器软件遇到一个问题,在下载大文件时,如果同时下载的用户很多, 服务器软件工作会出现异常,有的用户无法下载.服务器硬件 ...

  5. H3C 三种生成树协议的端口状态对比

  6. 将url传参的中文字符在页面中显示正常

    //将url传参的中文字符在页面中显示正常var url=decodeURI(url);

  7. centos虚拟机Ping不通网关

    centos虚拟机Ping不通网关 今天在VMware中安装了centos mini版本,安装完成后,用xshell连接一直连不上,本来以为是mini版本没有安装ssh server,于是就用命令: ...

  8. Linux 内核释放函数和 kobject 类型

    讨论中仍然缺失的一个重要事情是当一个 kobject 的引用计数到 0 时会发生什么. 创建 kobject 的代码通常不知道什么时候要发生这个情况; 如果它知道, 在第一位使用一个引 用计数就没有意 ...

  9. ios设备iframe无法滚动

    在使用IFRAME,你需要使用一个元素(如DIV)来包装他们 <div class="scroll-wrapper"> <iframe src="&qu ...

  10. Python正则表达式之findall疑点

    在findall中使用()进行分组时,得出的结果会优先提取分组的,比如下面这个例子 In [46]: re.findall(r"www.(baidu|163).com", &quo ...