C# 动态与变体

C# Dynamic vs. Variant

根据this文章:

it is important to remember that C# is a statically typed language; which leaves no room for variant types

这似乎是正确的...但是 Dynamic 数据类型不违反该规则吗?也许我遗漏了一些我不知道的细微差别,但动态数据类型对我来说似乎是一个真正的变体(如 JavaScript 或 VBA)?

在幕后 dynamic 被编译为 System.Object 并且编译器编写强类型的模式,并在运行时完成大部分调度工作。因此,C#(真正的 CLR)仍然是强类型的,但带有一些星号。

var C# 中的所有内容都是关于类型推断的,这就是那篇文章所讨论的内容。