C#入门基础之一(C#简介)

来源:互联网 发布:mac办公软件收费吗 编辑:程序博客网 时间:2024/06/16 18:24

 

一、.NET Framework的含义

.NETFrameworkMicrosoft为开发应用程序而创建的一个具有革命意义的平台。

1、没有说“在Windows操作系统上开发应用程序”

例如1Mono,它是.NET Framework的开源版本(包括C#编译器),可以运行于Linux各种版本和Mac OS上。

例如2:可以在个人数字助手(PDA)类设备和智能电话上使用Microsoft .NET Compact Framework(基本上是完整的.NET Framework的一个子集)

使用.NET Framework的一个重要原因是它可以集成各种操作系统的方式。

2.NET Framework定义并未限制应用程序的类型

使用.NET Framework可以创建Windows应用程序、Web应用程序、Web服务和其他各种类型的应用程序。

对于Web应用程序,它们是多平台的应用程序,因为任何带Web浏览器的系统都可以访问它们。

Silverlight还包含运行在客户浏览器内部的应用程序,以及仅以HTML格式显示Web内容的应用程序。

.NETFramework的设计方式可以用于各种语言,如:C#C++Visual BasicJscriptCOBOL等一些旧的语言。这些语言都推出.NET版本,所有这些语言都可以访问.NET Framework,它们之间可以通信,C#开发人员可以使用Visual Basic程序员编写的代码,反之亦然。

二、.NETFramework的内容

.NETFramework主要是包含一个非常大的代码库,可以在客户语言(C#)中通过面向对象编程技术(OOP)来使用这些代码。

代码库分多个不同的模块,不同操作系统可以根据自己的特性,支持其中的部分或全部模块。

部分.NET Framework库定义了一些基本类型。类型是数据的一种表达方式,指定其中最基础的部分(32位带符号的整数),以便使用.NET Framework在各种语言之间进行交互操作。称为通用类型系统(Common Type System)

.NETFramework除了提供代码库外,还包含.NET公共语言运行库(Common LanguageRuntimeCLR),它负责管理用.NET库开发的所有应用程序的执行。

三、使用.NETFramework编写应用程序

使用.Net Framework编写应用程序,就是使用.Net代码库编写代码(使用支持Framework的任何一种语言,如:C#)VS集成开发环境的优点是便于把.NET功能集成到代码中。

为了执行C#代码,必须把它们转换成目标操作系统能够理解的语言,即本机代码(native code)。这种转换称为编译代码,由编译器执行。在.NET Framework下,此过程包括两个阶段:

1、CILJIT

在编译使用.NET Framework库的代码时,不是立即创建专用于操作系统的本机代码,而是把代码编译为通用中间语言(Common Intermediate Language, CIL)代码,这些代码并非专用于任何一种语言,也非专用于C#

Just-In-Time(JIT)编译器:它把CIL编译为专用于OS和目标机器结构的本机代码。

Just-In-Time(JIT)反映了CIL代码仅在需要时才编译的事实。

每个应用程序都用于特定的操作系统和CPU结构。

JIT编译器使用CIL代码,而CIL代码是独立于计算机、操作系统和CPU的。程序开发者可以忽略与系统相关的细节,把注意力集中在代码的功能上。

2、程序集

在编译应用程序时,所创建的CIL代码存储在一个程序集中。程序集包括可执行的应用程序文件(可以直接在Windows上运行,不需要其他程序,其扩展名是.exe)和其他应用程序使用的库(其扩展名是.dll)

程序集还包含元信息(即程序集中包含的数据的信息,也称元数据)和可选的资源(CIL使用的其他数据,例如,声音文件和图片)。元信息允许程序集是完全自描述的。不需要其他信息说可以使用程序集,也就是说,我们不会遇到下述情形:不能把需要的数据添加到系统注册表中,而这种情形在使用其他平台进行开发时常常出现。

不必把运行应用程序需要的所有信息都安装到一个地方,可以编写一些代码来执行多个应用所要求的任务。通常把这些可重用的代码放在所有应用程序都可能访问的地方。在.NET Framework中,这个地方是全局程序集缓存(Global Assembly Cache,GAC),把代码放在这个缓存中是很简单的,只需把包含代码的程序集放在包含该缓存的目录中即可。

3、托管代码

在将代码编译为CIL,再用JIT编译器将它编译为本机代码后,CLR的任务还没有全部完成。还需要管理正在执行的用.NET Framework编写的代码(这个执行代码的阶段通常称为运行时)。即CLR管理着应用程序,其方式是管理内在、处理安全性以及允许进行跨语言高度等。相反,不受CLR控制运行的应用程序属于非托管类型,某些语言如C++可以用于编写这类应用程序,例如,访问操作系统的低级功能。但是在C#中,只能编写在托管环境下运行的代码。我们将使用CLR的托管功能,让.NET自己与操作系统进行交互。

4、垃圾回收

托管代码最重要的一个功能是垃圾回收。这种.NET方法可确保应用程序不再使用某些内存时,就会完全释放这些内存。

.NET垃圾回收会定期检查计算机内存,从中删除不再需要的内容。它不设置时间帧,可能一秒钟内会进行上千次的检查,也可能几秒钟才检查一次,或者随时进行检查,但不一定会进行检查。

5、把它们组合在一起

(1)     使用某种.NET兼容语言编写应用程序代码;

(2)     把代码编译成CIL,存储程序集中;

(3)     在执行代码时(如果这是一个可执行文件,就自动运行,或者在其他代码使用它时运行),首先必须使用JIT编译器将代码编译为本机代码;

(4)     在托管的CLR环境下运行本机代码,以及其他应用程序或进程。

6、链接

在第(2)步中编译为CILC#代码不一定包含在单独文件中,可以把应用程序代码放在多个源代码文件中,再把它们编译到一个程序集中。这个过程叫链接

四、C#的含义

C#是可用于创建要运行在.NET CLR上的应用程序的语言之一,它从CC++语言演化过来,是Microsoft专门为使用.NET平台而创建的。

C#语言的特点

(1)     C#语言语法比较简单;

(2)     C#是一种强大的语言,在C++中能完成的任务几乎都利用C#完成;

(3)     C#中与C++高级功能等价的功能,只能在标记为“不安全(unsafe)”的代码中使用;

(4)     C#是一种类型安全的语言;

(5)     C#只是用于.NET开发的一种语言,但是它是最好的一种语言;

(6)     C#是唯一彻头彻尾为.NET Framework设计的语言,是在移植到其他操作系统上的.NET版本中使用的主要语言。

0 0
原创粉丝点击