您的位置:首页 > 编程语言 > C#

关于C#的介绍

2010-01-08 21:07 197 查看
公共语言运行库(CLR),也叫.NET运行库

CLR(公共语言运行库)和Java虚拟机一样也是一个运行时环境,它负责资源管理(内存分配和垃圾收集),并保证应用和底层操作系统之间必要的分离。

  为了提高平台的可靠性,以及为了达到面向事务的电子商务应用所要求的稳定性级别,CLR还要负责其他一些任务,比如监视程序的运行。按照.NET的说法,在CLR监视之下运行的程序属于“受管理的”(managed)代码,而不在CLR之下、直接在裸机上运行的应用或者组件属于“非受管理的”(unmanaged)的代码。

  CLR将监视形形色色的常见编程错误,许多年来这些错误一直是软件故障的主要根源,其中包括:访问数组元素越界,访问未分配的内存空间,由于数据体积过大而导致的内存溢出,等等。

  然而,这种对受管理代码的运行监视是有代价的。虽然当前还不可能精确地得到监视程序运行所需要的开销,但从当前Beta测试版的性能表现来看,正如Microsoft所承认的那样,我们可以预料由它导致的性能降低程度至少达到10%。当然,如果监视程序运行能够将稳定性和可用性提高到一个新的档次,我们可以怀疑10%的性能降低是否还可以称为一件坏事……

  在处理器性能改善方面,摩尔定律已经一再被证明是正确的。既然如此,我们要得到一台性能增加了10%的服务器要等待多长时间呢

  另有:CLR 公用语言运行时 Common Language Runtime

  .NET提供了一个运行时环境,叫做公用语言运行时(Common Language Runtime),是一种多语言执行环境,支持众多的数据类型和语言特性。他管理着代码的执行,并使开发过程变得更加简单。这是一种可操控的执行环境,其功能通过编译器与其他工具共同展现。

Microsoft中间语言(MSIL)

MSIL是一个它所支持的语言的扩展集,这样保证了语言的无关性,即.NET语言不能执行MSIL不能执行的操作。

关于MSIL语言:

  1.面向对象设计(OOD)

  2.类的单一实现继承

  3.支持接口

  4.以分离方式严格处理数据类型(值类型放在堆栈上,引用类型则存储在堆上)

  5.强类型系统(处理转换数据类型)

通用类型系统(CTS)

CTS是一个所有.NET语言都支持的数据类型的集合,确保这些语言可以相互传送数据,体现了.NET语言的互操作性。

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

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

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

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



CLR内部的每一种数据都是一个对象,象.NET Framework中的所有其他对象一样,均由System.Object派生而来。
System.Object类有四种所有类型都可以使用的方法(常被重载)。  

  1.Equals()  允许对象之间进行比较

  2.GethashCode()  为对象返回散列代码,即对象的唯一身份

  3.GetType()  成为反射

  4.ToString()  返回一个类型的字符串表示法

公共语言规范(CLS)

CLS是一组定义了一种语言的边界的标准,或者说是一种语言(与CLS兼容的)必须支持或遵循的一系列语言功能,从而使得其可以与其他的.NET语言互操作。

因此只要一种语言支持CLS,那么它只能支持MSIL和CTS语言功能的一个子集。如图



语言的互操作性

上面所述,只要代码是CTS许可的,就可以与其他语言的代码交互。这意味着以下的操作都可以完成:

  1.一种类型可以由使用另一种语言编写的另一种类型派生而来

  2.可以将一个对象传送到一个方法,该方法属于由另一种语言编写的另一个类型

  3.一旦产生一个异常,可以将这个异常在使用一种不同语言编写的代码中传递

  4.一个调试器可以在代码的不同方法之间调试,并且显示源代码,即使在多种语言之间进行调试也可以的

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: