https://docs.microsoft.com/zh-cn/dotnet/standard/managed-code
来自微软官网。
本文档解释这个术语的含义及其更多相关信息。
除此之外,运行时还提供多个重要服务,例如自动内存管理、安全边界、类型安全,等等。
其他任何工作 - 从内存管理到安全考虑因素 - 对于程序员来说是一个不小的负担。
C++ 是这条规则的一个例外,因为它也能够生成可在 Windows 上运行的本机非托管二进制代码。
中间语言和执行
必须注意,IL 独立于在运行时顶层运行的任何特定语言;行业甚至为它单独制定了规范,如果有需要,你可以阅读该规范。
这样,CLR 就能确切地知道代码的作用,并可以有效地_管理_代码。
中间语言有时也称为公共中间语言 (CIL) 或 Microsoft 中间语言 (MSIL)。
托管代码互操作性
但是,请务必注意,如果采取这种方法,当代码越过运行时的边界时,实际的执行管理将再次交接到托管代码,因而需要遵守相同的限制。
与此类似,C# 语言可让你利用所谓的不安全上下文(指定执行过程不由 CLR 管理的代码片段),在代码中直接使用非托管构造,例如指针。