托管代码.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元/月)香港三网CN2云服器低至;1核1G/30G系统盘+20G数据盘/10M带宽

趣米云怎么样?趣米云是创建于2021年的国人IDC商家,虽然刚刚成立,但站长早期为3家IDC提供技术服务,已从业2年之久,目前主要从事出售香港vps、香港独立服务器、香港站群服务器等,目前在售VPS线路有三网CN2、CN2 GIA,该公司旗下产品均采用KVM虚拟化架构。由于内存资源大部分已售,而IP大量闲置,因此我们本月新增1c1g优惠套餐。点击进入:趣米云官方网站地址香港三网CN2云服务器机型活...

华纳云新人下单立减40元/香港云服务器月付60元起,香港双向CN2(GIA)

华纳云(HNCloud Limited)是一家专业的全球数据中心基础服务提供商,总部在香港,隶属于香港联合通讯国际有限公司,拥有香港政府颁发的商业登记证明,保证用户的安全性和合规性。 华纳云是APNIC 和 ARIN 会员单位。主要提供数据中心基础服务、互联网业务解决方案, 以及香港服务器租用、香港服务器托管、香港云服务器、美国云服务器,云计算、云安全技术研发等产品和服务。其中云服务器基于成熟的 ...

CloudServer:$4/月KVM-2GB/50GB/5TB/三个数据中心

CloudServer是一家新的VPS主机商,成立了差不多9个月吧,提供基于KVM架构的VPS主机,支持Linux或者Windows操作系统,数据中心在美国纽约、洛杉矶和芝加哥机房,都是ColoCrossing的机器。目前商家在LEB提供了几款特价套餐,最低月付4美元(或者$23.88/年),购买更高级别套餐还能三个月费用使用6个月,等于前半年五折了。下面列出几款特别套餐配置信息。CPU:1cor...

托管代码为你推荐
互联网舆情监控系统有知道互联网监控系统的吗?也叫舆情监测系统。阶乘符号数学中的阶乘符号与那个标点符号的写法相同?mergefield邮件合并中如何插入百分数pps官网pps官方下载,pps播放器下载pat是什么格式pat是什么格式的文件啊刷ip流量如何刷自己网站的IP流量java程序员招聘java程序员学出来工作好不好找,工资咋样?selectintooracle有select into临时表的用法吗动画分镜头脚本动画分镜头台本的作用?防火墙技术应用常用防火墙技术有哪几种
edgecast bandwagonhost isatap 名片模板psd debian6 新站长网 商务主机 国外在线代理 速度云 中国网通测速 鲁诺 便宜空间 沈阳主机托管 畅行云 申请免费空间 万网注册 杭州电信宽带 双十二促销 月付空间 认证机构 更多