.NET 托管代码与非托管代码

介绍.NET中的托管代码与非托管代码。

📌 MSDN介绍

什么是“托管代码”?

托管代码就是执行过程交由运行时管理的代码。

在这种情况下,相关的运行时称为公共语言运行时 (CLR),不管使用的是哪种实现(例如 Mono、.NET Framework 或 .NET Core/.NET 5+)。 CLR 负责提取托管代码、将其编译成机器代码,然后执行它。 除此之外,运行时还提供多个重要服务,例如自动内存管理、安全边界和类型安全。

什么是“非托管代码”?

非托管代码依赖与平台和语言,需要自己提供安全检测、垃圾回收等操作。

在非托管环境中,程序员需要亲自负责处理相当多的事情。 实际的程序在本质上是操作系统 (OS) 载入内存,然后启动的二进制代码。 其他任何工作 - 从内存管理到安全考虑因素 - 对于程序员来说是一个不小的负担。

非托管类型?

📌MSDN介绍

这里不做概念介绍,感觉会很容易让人感觉到疑惑,疑惑的点是:

1、非托管类型和非托管代码有关系吗?

2、非托管类型和托管代码有关系吗?

好吧,我也没找到上面两个问题的答案,小伙伴们有知道的明确告知下,欢迎大家踊跃讨论。

相关参考

  1. 什么是“托管代码”?
  2. 非托管类型(C# 参考)
  3. .NET 托管与非托管
  4. .net中的托管、非托管
posted @ 2023-08-09 08:40  lanwah  阅读(87)  评论(0编辑  收藏  举报