托管代码.NET下什么是托管代码

托管代码  时间:2021-06-26  阅读:()

什么是"托管代码"?

托管代码是可以使用20多种支持Microsoft .NET Framework的高级语言编写的代码,它们包括:C#, J#, Microsoft Visual Basic .NET, Microsoft JScript .NET, 以及C++。

所有的语言共享统一的类库集合,并能被编码成为中间语言(IL)。

运行库编译器(runtime-aware ompiler)在托管执行环境下编译中间语言(IL)使之成为本地可执行的代码,并使用数组边界和索引检查,异常处理,垃圾回收等手段确保类型的安全。

在托管执行环境中使用托管代码及其编译,可以避免许多典型的导致安全黑洞和不稳定程序的编程错误。

同样,许多不可靠的设计也自动的被增强了安全性,例如 类型安全检查,内存管理和释放无效对象。

程序员可以花更多的精力关注程序的应用逻辑设计并可以减少代码的编写量。

这就意味着更短的开发时间和更健壮的程序。

c# 托管是什么意思

托管代码就是基于元数据格式的代码,运行于平台之上,所有的与操作系统的交换有来完成,就像是把这些功能委托给,所以称之为托管代码。

非托管代码则反之。

举个例子l 还可以使用mfc,atl来编写程序,他们基于MFC或者ATL,而不是.NET,所有是非托管代码,如果基于比如C#,则是托管代码 非托管代码是指.NET解释不了的 简单的说,托管代码的话,可以自动释放资料,非托管代码需要手动释放资料. 什么是托管C++ 托管是.NET的一个专门概念,它倡导一种新的编程理念,因此我们完全可以把“托管”视为“.NET”。

由托管概念所引发的C++应用程序包括托管代码、托管数据和托管类三个组成部分。

托管代码 .Net环境提供了许多核心的运行(RUNTIME)服务,比如异常处理和安全策略。

为了能使用这些服务,必须要给运行环境提供一些信息代码(元数据),这种代码就是托管代码。

所有的C#、VB.NET、JScript.NET默认时都是托管的,但Visual C++默认时不是托管的,必须在编译器中使用命令行选项(/CLR)才能产生托管代码。

托管数据 与托管代码密切相关的是托管数据。

托管数据是由公共语言运行的垃圾回收器进行分配和释放的数据。

默认情况下,C#、Visual Basic 和 JScript.NET 数据是托管数据。

不过,通过使用特殊的关键字,C# 数据可以被标记为非托管数据。

Visual C++数据在默认情况下是非托管数据,即使在使用 /CLR 开关时也不是托管的。

托管类 尽管Visual C++数据在默认情况下是非托管数据,但是在使用C++的托管扩展时,可以使用“__gc”关键字将类标记为托管类。

就像该名称所显示的那样,它表示类实例的内存由垃圾回收器管理。

另外,一个托管类也完全可以成为 .NET 框架的成员,由此可以带来的好处是,它可以与其他语言编写的类正确地进行相互操作,如托管的C++类可以从Visual Basic类继承等。

但同时也有一些限制,如托管类只能从一个基类继承等。

托管代码和非托管代码有什么区别

广义的说,托管代码就是集成在你所使用的开发平台内的编程语言。

例如:目前最常见的 .Net 运行库里集成了VC++, C#, VB, F#...等20多种语言的构件和处理功能。

托管代码: ”托管“的含义就是,这些语言的后台(隐性的)操作都由这个管理系统(.Net)完成了,你把你的编程委托给了开发平台(库)来完成。

当你使用这些语言时,一些系统资源的调用、回收、编译……各种工作都由它来完成,你只需要专注于程序功能的实现即可。

非托管代码: 就是指不在你这个集成开发环境里,而是使用其它的开发平台写出的程序(代码)。

比如说java语言(不是jscript),basic语言(不是VB),C语言(不是VC/C++/C#)等等……它们也有自己的开发平台和程序,用这些语言写出的程序就属于”非托管“。

当非托管的代码在你的托管平台上运行时,你的托管平台就不能很好地处理一些后台(隐性的)操作,就需要编写额外的代码来使它们变得和谐并且安全。

举个最简单的例子: C和汇编语言,它们是最早期进入计算机领域的高级语言(汇编已经不能算高级语言了:)),它们可以直接对CPU、内存、总线、I/O、硬盘等硬件进行操作(读/写),像DOS、Windows、iOs这些操作系统都是用它们写的。

所以你在.Net集成环境中直接使用这些语言时,会遇到很大的阻碍,阻碍来源于所谓的”托管平台“,它认为这些操作是不安全的,就会拒绝编译和执行。

但这些语言的特点是操作直接、速度奇快(跟托管平台比),而且专用性和针对性极强,当我们需要运行具有上述特点的程序时,C和汇编可以说是最理想的语言了。

要想让它们和托管平台”和平共处“的话,就需要编制额外的代码让它们符合这个托管平台的安全和管理规范,还需要有非常高深的编程功底。

要不然等待我们的就会有两种结果:一是程序无法运行、二是直接造成软件或硬件的损坏(底层操作是可以损伤硬件的)。

我解释清楚了吗?

.NET下什么是托管代码

首先你要明白什么是.NET Framework、简单点来说是一个框架、而C#应用程序或ASP.NET应用程序都是运行在这个框架之上的、个人理解为相当于java的jdk、其中.NET Framework下包括两个主要的组件:公共语言运行库和.NET Framework类库、而公共语言运行库运行库是.NET Framework的基础、可以把它看作一个在执行时管理代码的代理、既然是代理、可能会提供一些服务、其中核心的服务有内存管理、线程管理和远程处理==、这个时候以运行库为目标的代码成为托管代码、反之则为非托管代码、当然由C#语言开放的、属于托管代码、至于.NET Framework类库里面有什么自己动手去找找资料、敲的手酸、 祝你好运、、

易探云月付18元起,香港/美国/深圳/北京VPS,CN2、BGP等多线路

易探云怎么样?易探云是国内一家云计算服务商家,致力香港服务器、国内外服务器租用及托管等互联网业务,目前主要地区为运作香港BGP、香港CN2、广东、北京、深圳等地区。易探云服务器均选择当下热门线路,比如CN2 GIA、BGP线路、CN2线路等,所有云主机支持月付,并且首月优惠,年付优惠,优惠后香港沙田云服务器/独立ip/香港CN2线路,每月仅18元,188元/年。点击进入:易探云官方网站地址1、香港...

DogYun(300元/月),韩国独立服务器,E5/SSD+NVMe

DogYun(中文名称狗云)新上了一批韩国自动化上架独立服务器,使用月减200元优惠码后仅需每月300元,双E5 CPU,SSD+NVMe高性能硬盘,支持安装Linux或者Windows操作系统,下单自动化上架。这是一家成立于2019年的国人主机商,提供VPS和独立服务器租用等产品,数据中心包括中国香港、美国洛杉矶、日本、韩国、德国、荷兰等。下面分享这款自动化上架韩国独立服务器的配置和优惠码信息。...

CloudCone2核KVM美国洛杉矶MC机房机房2.89美元/月,美国洛杉矶MC机房KVM虚拟架构2核1.5G内存1Gbps带宽,国外便宜美国VPS七月特价优惠

近日CloudCone发布了七月的特价便宜优惠VPS云服务器产品,KVM虚拟架构,性价比最高的为2核心1.5G内存1Gbps带宽5TB月流量,2.89美元/月,稳定性还是非常不错的,有需要国外便宜VPS云服务器的朋友可以关注一下。CloudCone怎么样?CloudCone服务器好不好?CloudCone值不值得购买?CloudCone是一家成立于2017年的美国服务器提供商,国外实力大厂,自己开...

托管代码为你推荐
国家法规数据库哪个常用的法律APP比较好用?broadcast播播……拼音qq管家官网腾讯手机管家如何下载QQ手机管家?java程序员招聘为什么Java程序员工资都很高淘码除了爱码,现在哪个验证码平台还能用怎么查微信注册时间怎么知道微信上次登录时间distinct是什么意思SQL数据库DISTINCT是什么意思在线操作系统常见的电脑操作系统有哪些?各有什么优缺点flv转avi求FLV转换为AVI的软件情人节网页想给我女朋友做一个情人节快乐的简易网站,域名和虚拟主机都买好了,就是不会html,有没有人能给我个参考模板?
php空间租用 3322免费域名 stablehost 好看的留言 骨干网络 hinet 卡巴斯基免费试用 绍兴电信 33456 吉林铁通 空间购买 监控服务器 lamp兄弟连 免费个人主页 免费蓝钻 存储服务器 广东服务器托管 汤博乐 空间排行榜 weblogic部署 更多