CLR 和 CTS

CLR是公用语言运行时(Common Language Runtime)。

.NET提供了一个运行时环境,叫做公用语言运行时 (Common Language Runtime),是一种多语言执行环境,支持众多的数据类型和语言特性。它管理着代码的执行,并使开发过程变得更加简单。这是一种可操控的执行环境,其 功能通过编译器与其他工具共同展现。而依靠一种以运行时为目标的编译器开发的代码叫做可操控代码。为了使运行时环境可以向可操控代码提供服务,语言编译器 需要产生一种元数据,它将提供在使用语言中的类型、成员、引用的信息。运行时环境使用元数据定位并载入类,在内存中展开对象实例,解决方法调用,产生本地 代码,强制执行安全性,并建立运行时环境的边界。

CTS:公共类型系统(Common Type System)类似于COM定义的标准二进制格式,.NET定义了一个称为通用类型系统Common Type System(CTS)的类型标准。这个类型系统不但实现了COM的变量兼容类型,而且还定义了通过用户自定义类型的方式来进行类型扩展。任何以.NET 平台作为目标的语言必须建立它的数据类型与CTS的类型间的映射。所有.NET语言共享这一类型系统,实现它们之间无缝的互操作。该方案还提供了语言之间 的继承性。例如,用户能够在Visual Basic.NET中派生一个由C#编写的类。

面试例题2:property和attribute的区别是什么?

答案:property和attribute这两个 名词中文都被翻译为“属性”,实际上两者是大相径庭的。其实它们来源于两个不同的领域,attribute属于OOA/OOD的概念,而property 属于编程语言中的概念。Attributes是Microsoft .NET Framework文件的元数据,可以用来向运行时描述你的代码,或者在程序运行的时候影响应用程序的行为。property属性是面向对象编程的基本概 念,提供了对私有字段的访问封装,在C#中以get和set访问器方法实现对可读可写属性的操作,提供了安全和灵活的数据访问封装。

可 以说两者没有可比性,只要记住Attribute是派生于System、Attribute类之下,它的主要作用是描述,比如为了描述某个方法是来自于外 部的dll,写如下代码,这就是一个Attribute,它是一个描述(或者说声明):

[DllImport("User32.dll")]

而Property是指编程过程中的字段,即类的 成员,如下:

private int hour;      // 定义私有变量表示"小时",外部是访问不到的

public int Hour         // 定义Hour程序接口

{

     set { hour=value; }

     get { return hour;}

}

posted @ 2010-05-15 10:44  mozer  阅读(266)  评论(0编辑  收藏  举报