C#入门基础之一(C#简介)
来源:互联网 发布:mac办公软件收费吗 编辑:程序博客网 时间:2024/06/16 18:24
一、.NET Framework的含义
.NETFramework是Microsoft为开发应用程序而创建的一个具有革命意义的平台。
1、没有说“在Windows操作系统上开发应用程序”
例如1:Mono,它是.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 Basic、Jscript和COBOL等一些旧的语言。这些语言都推出.NET版本,所有这些语言都可以访问.NET Framework,它们之间可以通信,C#开发人员可以使用Visual Basic程序员编写的代码,反之亦然。
二、.NETFramework的内容
.NETFramework主要是包含一个非常大的代码库,可以在客户语言(如C#)中通过面向对象编程技术(OOP)来使用这些代码。
代码库分多个不同的模块,不同操作系统可以根据自己的特性,支持其中的部分或全部模块。
部分.NET Framework库定义了一些基本类型。类型是数据的一种表达方式,指定其中最基础的部分(如32位带符号的整数),以便使用.NET Framework在各种语言之间进行交互操作。称为通用类型系统(Common Type System)。
.NETFramework除了提供代码库外,还包含.NET公共语言运行库(Common LanguageRuntime,CLR),它负责管理用.NET库开发的所有应用程序的执行。
三、使用.NETFramework编写应用程序
使用.Net Framework编写应用程序,就是使用.Net代码库编写代码(使用支持Framework的任何一种语言,如:C#)。VS集成开发环境的优点是便于把.NET功能集成到代码中。
为了执行C#代码,必须把它们转换成目标操作系统能够理解的语言,即本机代码(native code)。这种转换称为编译代码,由编译器执行。在.NET Framework下,此过程包括两个阶段:
1、CIL和JIT
在编译使用.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)步中编译为CIL的C#代码不一定包含在单独文件中,可以把应用程序代码放在多个源代码文件中,再把它们编译到一个程序集中。这个过程叫链接。
四、C#的含义
C#是可用于创建要运行在.NET CLR上的应用程序的语言之一,它从C和C++语言演化过来,是Microsoft专门为使用.NET平台而创建的。
C#语言的特点:
(1) C#语言语法比较简单;
(2) C#是一种强大的语言,在C++中能完成的任务几乎都利用C#完成;
(3) C#中与C++高级功能等价的功能,只能在标记为“不安全(unsafe)”的代码中使用;
(4) C#是一种类型安全的语言;
(5) C#只是用于.NET开发的一种语言,但是它是最好的一种语言;
(6) C#是唯一彻头彻尾为.NET Framework设计的语言,是在移植到其他操作系统上的.NET版本中使用的主要语言。
- C#入门基础之一(C#简介)
- 基础学习 C#之一
- C#基础总结之一
- C#入门经典---C#简介
- 1,C#入门简介
- C#入门学习笔记之一
- C#基础学习之一 温故而知新
- C#基础入门
- 第一章 C#入门基础
- C#入门基础
- C#编程--基础入门
- C#快速入门基础
- Unity3d-C#入门基础
- C#溢出基础入门
- 【C#】C#入门基础
- C#基础 Html入门
- C#入门基础
- C#入门经典学习1-C#简介
- FZU 2129 子序列个数(DP)
- 关于何种情况下使用DataGrid、DataList或Repeater的一些讨论(1)
- Scripts:查看使用PGA最多的10个SQL的脚本hpga10.sql
- 利用System.IO中的Directory类对指定的目录进行遍历 "
- iOS开发准备篇-(2)Mac OS X截图操作
- C#入门基础之一(C#简介)
- <细节>C++函数形参表调用顺序
- VC中利用多线程技术实现线程之间的通信
- Scripts:查看耗用buffer cache最多的10个SQL的脚本hbuf10.sql
- LayoutInflater 全方位描述
- HDU1010第一道DFS
- 结构体 练习1
- 数据结构与算法分析10(排序-插入、冒泡、希尔、堆、归并)
- Holding Bin-Laden Captive!