.NET 托管代码与非托管代码
介绍.NET中的托管代码与非托管代码。
📌 MSDN介绍
什么是“托管代码”?
托管代码就是执行过程交由运行时管理的代码。
在这种情况下,相关的运行时称为公共语言运行时 (CLR),不管使用的是哪种实现(例如 Mono、.NET Framework 或 .NET Core/.NET 5+)。 CLR 负责提取托管代码、将其编译成机器代码,然后执行它。 除此之外,运行时还提供多个重要服务,例如自动内存管理、安全边界和类型安全。
什么是“非托管代码”?
非托管代码依赖与平台和语言,需要自己提供安全检测、垃圾回收等操作。
在非托管环境中,程序员需要亲自负责处理相当多的事情。 实际的程序在本质上是操作系统 (OS) 载入内存,然后启动的二进制代码。 其他任何工作 - 从内存管理到安全考虑因素 - 对于程序员来说是一个不小的负担。
非托管类型?
这里不做概念介绍,感觉会很容易让人感觉到疑惑,疑惑的点是:
1、非托管类型和非托管代码有关系吗?
2、非托管类型和托管代码有关系吗?
好吧,我也没找到上面两个问题的答案,小伙伴们有知道的明确告知下,欢迎大家踊跃讨论。