2023-05-23
工具
00

引言

汇总一下所有的 .NET IL 指令,以及它们的名称、操作码值、堆栈转换行为和描述。

作为反编译IL代码时的查询字典。

2023-05-23
C#
00

引言

先不论什么是闭包,什么是闭包陷阱,我们开篇先看一段代码:

csharp
static void Main(string[] args) { List<Action> lists = new List<Action>(); for (int i = 0; i < 5; i++) { Action action = () => { Console.WriteLine(i); }; lists.Add(action); } foreach (var action in lists) { action(); } Console.ReadLine(); }

那么思考一下,控制台输出是什么?

2023-05-21
C#
00

引言

dynamicFramework 4.0 就出现特性,它的出现让 C# 具有了弱语言类型的特性。编译器在编译的时候不再对类型进行检查,默认 dynamic 对象支持开发者想要的任何特性。

2023-05-20
工具
00

介绍

今天介绍一个非常强大的基于.Net 的基准测试工具BenchmarkDotNet

BenchmarkDotNet 已经被14300多个项目采用,包括非常多的知名开源项目,例如

  • dotnet/performance(.Net所有运行时的基准测试项目)
  • dotnet/runtime(.Net 运行时库),
  • Roslyn (c#和Visual Basic编译器),
  • Mono、 ASP.NET Core、 ML.NET、 Entity Framework Core、 PowerShell SignalR、 f#、 Orleans, Newtonsoft.Json、Elasticsearch.Net、Dapper等诸多知名开源项目。

引言

上一篇数据结构与算法 --- 排序算法(一)中,学习了冒泡排序,插入排序,选择排序这三种时间复杂度为 O(n2)O(n^2) 的算法。实时上 O(n2)O(n^2) 时间复杂度是非常高的,所以一般只适合小规模数据排序,那接下来,就在看一看时间复杂度为 O(nlog)O(nlog) 的算法:归并排序和快速排序。