CTS、CLS和CLR分别作何解释?

问题阐述

CTS、CLS和CLR分别是什么意思?

专家解答

CTS、CLS和CLR是.NET框架的3个核心部分,下面分别对它们进行介绍。

(1)CTS

CTS即通用类型系统,它定义了如何在.NET Framework运行库中声明、使用和管理类型,同时也是.NET Framework运行库支持跨语言集成的一个重要组成部分。通用类型系统主要执行以下功能:

建立一个支持跨语言集成、类型安全和高性能代码执行的框架。

提供一个支持完整实现多种编程语言的面向对象的模型。

定义各语言必须遵守的规则,有助于确保用不同语言编写的对象能够发生交互  作用。

.NET Framework类库中的通用类型系统支持两种类别的类型,分别为值类型和引用类型,下面分别对它们进行简单介绍。

值类型

值类型直接包含它们的数据,值类型的实例要么在堆栈上,要么内联在结构中。值类型可以是内联的(由运行库实现)、用户定义的或枚举的。

引用类型

引用类型存储对值的内存地址的引用,位于堆上。引用类型可以是自描述类型、指针类型或接口类型。引用类型的类型可以由自描述类型的值来确定,自描述类型进一步细分成数组和类类型,类类型是用户定义的类、装箱的值类型和委托。图1.1显示了通用类型系统的一般结构。

 
图1.1  通用类型系统的结构

(2)CLS

CLS即公共语言规范,它是许多应用程序所需的一套基本语言功能。CLS规则定义了通用类型系统的子集,即所有适用于公共类型系统的规则都适用于 CLS,除非CLS中定义了更严格的规则。CLS通过定义一组开发人员可以确信在多种语言中都可用的功能来增强和确保语言的互用性。CLS还建立了CLS 遵从性要求,可帮助用户确定托管代码是否符合CLS以及一个给定的工具对托管代码(该代码是使用CLS功能的)开发的支持程度。

CLS在设计上足够大,可以包括开发人员经常需要的语言构造;同时也足够小,大多数语言都可以支持它。此外,任何不可能快速验证代码类型安全性的语言构造都被排除在CLS之外,以便所有符合CLS的语言都可以生成可验证的代码。

(3)CLR

CLR即公共语言运行库,是.NET Framework的基础,可以将其看作一个在执行时管理代码的代理,它提供了内存管理、线程管理和远程处理等核心服务,并且还强制实施严格的类型安全以及可提高安全性和可靠性的其他形式的代码准确性。

公共语言运行库用于管理内存、线程执行、代码执行、代码安全验证、编译以及其他系统服务,这些功能是在公共语言运行库上运行的托管代码所固有的。至 于安全性,则取决于包括托管组件的来源(如Internet、企业网络或本地计算机)在内的一些因素,由于托管组件被赋予不同程度的信任,这意味着即使用 在同一活动应用程序中,托管组件可能执行文件访问操作、注册表访问操作或其他须小心使用的功能,也可能不能够执行这些功能。

公共语言运行库还通过实现称为通用类型系统(CTS)的严格类型验证和代码验证基础结构来加强代码可靠性。CTS确保所有托管代码都可以自我描述。 微软和第三方语言编译器生成符合CTS的托管代码,这意味着托管代码可在严格实施类型保护和类型安全的同时使用其他托管类型和实例。

专家点评

CTS(Common Type System)是通用类型系统,主要用于解决不同语言的数据类型不同的问题,它是一种类型标准,在这个标准中不但实现了COM的变量兼容类型,还定义了通 过用户自定义类型的方式来进行类型扩展,所有以.NET平台为目标的语言通过建立本身数据类型与CTS之间的映射来实现与其他语言的数据类型的交互。

CLS(Common Language Specification)是公共语言规范,主要用于实现多种语言之间的互操作性,是公共语言运行库的子集。

CLR(Common Language Runtime)是公共语言运行库,是所有.NET应用程序运行时的环境,所有应用程序都要使用的编程基础,它如同一个支持.NET应用程序运行和开发的虚拟机。

CTS、CLS和CLR分别作何解释?相关推荐

  1. CTS、CLS、CLR分别作何解释

    CTS.CLS.CLR分别作何解释? a. CTS:通用类型系统 (commontype system).一种确定公共语言运行库如何定义.使用和管理类型的规范.即Int32.Int16→int.Str ...

  2. .NET中 ,CTS、CLS和CLR分别作何解释?

    1.CTS:通用语言系统 CTS:Common Type System 通用类型系统.Int32.Int16→int.String→string.Boolean→bool.每种语言都定义了自己的类型, ...

  3. 什么是CTS CLS和CLR

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 什么是C ...

  4. 什么是.Net, IL, CLI, BCL, FCL, CTS, CLS, CLR, JIT

    什么是.NET? 起源:比尔盖茨在2000年的Professional Developers Conference介绍了一个崭新的平台叫作Next Generation Windows Service ...

  5. CLR,CTS,CLS

    理论: CLR是.NET Framework的核心,而CTS(common Type System)和CLS(common language System)是CLR的核心.任何编程语言,如果想要在.N ...

  6. .NET的3C:CTS、CLS和CLR 以及 IL

     .NET的3C:CTS.CLS和CLR .NET结合Java和COM解决方案两者优点来解决互操作性问题.类似于COM定义的标准二进制格式,.NET定义了一个称为通用类型系统Common Type S ...

  7. 什么是CTS、CLS、CLR

    什么是CTS.CLS.CLR CTS:Common Type System 通用类型系统. CLS:Common Language Language Specification 通用语言规范. CLR ...

  8. .NET中的CTS、CLS和CLR

    在学习.NET的过程中,都会不可避免地接触到这三个概念,那么这三个东西是什么以及它们之间的关系是怎样的呢?我们在学习的过程中可能比较过多的会去关注CLR,因为CLR是.NET Framework的核心 ...

  9. C# 中的CTS、ClS、ClR的用途

    在描述以上三个概念之前要先知道IL: IL(intermediate language)) 中间语言,是经过编译之后可以执行的二进制代码,实现了.net平台的互联互通,后缀名为.exe或.dll. 1 ...

最新文章

  1. mysql root的密码忘了?linux下重置mysql的root用户密码。
  2. 第六章 深度学习(上中)
  3. iis 运行时错误_17个常见的Python运行时错误
  4. 归档日志 delete input 和delete all input 区别
  5. linux删除第二列为空_Linux之基本文本处理工具(二)
  6. 程序员如何学习更好的知识_如何保持学习并成为更好的程序员
  7. SpringBoot2 整合 AXIS 服务端和客户端
  8. Android安全笔记-Tasks与Recents Screen与Fragment基本概念
  9. 4-1 面向对象概述
  10. framset和fram的嵌套
  11. 【30集iCore3_ADP出厂源代码(ARM部分)讲解视频】30-11层驱动之FSMC
  12. JavaScript的DOM操作.
  13. 视频教程-Xamarin技术讲座——初级篇-其他
  14. PHP打印九九乘法表
  15. java gzip rest_使用restclient或postman发送gzip数据
  16. 英语自然拼读:字母A的常见几种发音
  17. 台式计算机能装蓝牙吗,台式机如何安装蓝牙
  18. torch 显存管理
  19. 堆漏洞挖掘中的Chunk分类(allocated chunk、free chunk、top chunk、last remainder chunk)
  20. 和铂医药任命陈颖颖博士为首席财务官;​劲方医药和英矽智能达成合作 | 医药健闻...

热门文章

  1. 格式化的计算机数据就找不回来了,电脑被格式化了,硬盘文件恢复的回来吗?...
  2. “金拱门”又刷屏了,年度优秀小程序就是牛气!
  3. 月亮网摘2009.2.12
  4. GIEC2019第六届全球互联网经济大会北京站震撼来袭!
  5. 局域网共享hfs 软件使用
  6. 如何生成文件夹的目录结构?
  7. 当视频网站的“XX挑战”成为过街老鼠
  8. 36氪采访触宝王佳梁:打电话本身就是个你可能忽视了的O2O入口
  9. 柳宿的关于wow的评论
  10. 基于情感词典的文本情感分析方法